本篇文章为干货,罗列出Docker使用过程中最为常用的命令集合。 其中包括:镜像、容器、制作镜像的相关内容。

镜像(Image):

  • 获取镜像:
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] 
  • 列出镜像:
docker image ls 
  • 查看镜像的实际尺寸(dockerhub中的大小为压缩后的大小)
docker system df 
  • 启动容器:
docker run -it --rm ubuntu:18.04 bash 
  • 列出虚悬镜像:
docker image ls -f dangling=true 
  • 删除虚悬镜像:
docker image prune 
  • 列出所有镜像(包含中间层镜像):
docker image ls -a 
  • 删除镜像(<镜像>可以是镜像短 ID、镜像长 ID、镜像名或者镜像摘要):
docker image rm [选项] <镜像1> [<镜像2> …]   

虚悬镜像:为被更新后无用的镜像,比如一个latest的镜像使用docker commit后这个镜像就会变成tag为的镜像。这些镜像成为虚悬镜像,可以任意删除。

中间层镜像:被其它镜像或容器依赖的镜像,默认情况下是不显示出来的, 不可任意删除,因为会导致被依赖的镜像工作不正常。

Untagged 和 Deleted, 当被删除的镜像还有其它的tag的话,使用docker rm进行的操作执行将对应的tag取消。 只有当删除非多个tag的情况下进行docker rm才会进行实际的delete操作。

容器:

  • 新建并启动容器:
docker run -it ubuntu:18.04 bash 

容器启动步骤:

  • 检查本地是否存在指定的镜像,不存在就从公有仓库下载

  • 利用镜像创建并启动一个容器

  • 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层

  • 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去

  • 从地址池配置一个 ip 地址给容器

  • 执行用户指定的应用程序

  • 执行完毕后容器被终止

  • 启动已终止的容器:

docker container start 
  • 后台运行容器:
docker run -d ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" 
  • 列出容器:
docker container ls 
  • 查看容器输出内容:
docker container logs 
  • 终止容器:
docker container stop 
  • 查看所有容器(包含已终止容器):
docker container ls -a 
  • 进入容器(存在两种方法):
1.推荐方式 
docker exec -it 容器名 bash 
2.不推荐方式,在执行exit时容器会退出。 
docker attach 容器名 

导出容器(此种方式在导入快照是会丢失容器标签及元数据信息)

docker export 容器名 > ubuntu.tar 
  • 导入容器
cat ubuntu.tar | docker import - test/ubuntu:v1.0 
  • 删除容器:
docker container rm 容器名 
  • 清理所有终止状态的容器:
docker container prune 

制作镜像

  • 查看容器存储层的内容(容器与镜像变更的文件):
docker diff 容器名 
  • 保存容器为镜像(不推荐的方法):
docker commit \ 
--author "Tao Wang <[twang2218@gmail.com](mailto:twang2218@gmail.com)>" \ 
--message "修改了默认网页" \ 
webserver \ 
nginx:v2 
  • 查看镜像的提交历史记录:
docker history 镜像名 
  • 使用Dockerfile进行镜像构建:
docker build -t nginx:v3 .