本篇文章为干货,罗列出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 .