docker 操作笔记
1.Docker 创建ubuntu系统更换 apt-get源
创建Dockerfile并且更新apt源
在Dockerfile中添加如下两句代码:
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN apt-get clean
Dockerfile 文件
FROM ubuntu:latest MAINTAINER itdream "itdream6@163.com" RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list RUN apt-get clean RUN apt-get update RUN apt-get install sudo RUN apt-get install vim RUN apt-get install curl RUN apt-get install wget sudo apt install systemctl RUN curl -sSL https://get.daocloud.io/docker | sh
查看所有的容器命令如下:
sudo docker ps -a
进入某个容器
docker exec:推荐大家使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止。
docker exec -it 8282cf35de22 /bin/bash
2.镜像打包
docker save ubuntu:22.04 > ubuntu.tar
3.镜像导入
docker load < ubuntu.tar
4.docker 删除已停止的容器
根据容器的状态,删除Exited状态的容器
#根据容器的状态,删除Exited状态的容器 sudo docker rm $(sudo docker ps -qf status=exited) # 删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了) sudo docker rm $(sudo docker ps -a -q) #查询所有的容器,过滤出Exited状态的容器,列出容器ID,删除这些容器 #显示所有的容器,过滤出Exited状态的容器,取出这些容器的ID, sudo docker ps -a|grep Exited|awk '{print $1}' #查询所有的容器,过滤出Exited状态的容器,列出容器ID,删除这些容器 sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'` 手动清理 Docker 镜像/容器/数据卷 对于旧版的 Docker(版本 1.13 之前),是没有 docker system 命令的,因此需要进行手动清理。这里给出几个常用的命 删除所有关闭的容器 docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm 删除所有 dangling 镜像(即无 tag 的镜像): docker rmi $(docker images | grep "^<none>" | awk "{print $3}") 删除所有 dangling 数据卷(即无用的 volume): docker volume rm $(docker volume ls -qf dangling=true)
6.镜像创建容器
docker run -t -i ubuntu:15.10 /bin/bash
docker删除镜像
使用一段时间之后,可能堆积很多用不着的,或者编译错误的镜像,一个一个删除就很麻烦,需要一个批量删除的方法
docker rmi $(docker images | grep "latest" | awk '{print $3}')
7.后台启动容器
docker run -itd --name ubuntu-test ubuntu /bin/bash
8.进入容器
docker exec -it 243c32535da7 /bin/bash
9.主宿机器和容器之间互相copy文件
# 容器copy到宿主机器 3c9bf1be70d3为容器id sudo docker cp 3c9bf1be70d3:/train/123.txt . # 宿主机器copy到容器 docker cp auto.sh 3c9bf1be70d3:/train/
10.镜像打包
# Docker 进入容器 sudo docker run -t -i smy20011/dreambooth:mmqi.1.2 /bin/bash # 容器打包 sudo docker commit 0d5f160e393f smy20011/dreambooth:mmqi.1.2.1
11.dockerfile 编写
FROM ubuntu:22.04 # 更换 apt-get 源为中国源 RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list # 安装必要的工具和 Python3.10 RUN apt-get update && \ apt-get install -y python3.10 && \ apt-get install -y python3-pip && \ apt-get install -y wget && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # 更换pip安装源为中国源 RUN mkdir ~/.pip && \ echo '[global]' > ~/.pip/pip.conf && \ echo 'index-url = https://pypi.mirrors.ustc.edu.cn/simple/' >> ~/.pip/pip.conf CMD ["/bin/bash"]
执行
docker build -t my-ubuntu-python:1.0 .