镜像
1. 从 Docker 镜像仓库获取镜像
# 登录
docker login
# 搜索
docker search ubuntu
# 拉取镜像(不添加版本号默认拉取最新镜像(ubuntu:latest))
docker pull ubuntu:16.04
2. 以镜像为基础启动并运行一个容器
# 启动里面的 `bash` 并且进行交互式操作
docker run -it --rm ubuntu:16.04 bash
3. 退出容器
exit
4. 列出已经下载下来的镜像
docker image ls
5. 查看镜像、容器、数据卷所占用的空间
docker system df
6. 查看虚悬镜像
docker image ls -f dangling=true
7. 删除虚悬镜像
docker image prune
8. 查看包括中间层镜像在内的所有镜像
docker image ls -a
9. 用ID、镜像名、摘要删除镜像
docker image rm <镜像名或ID或摘要>
10. 使用 Dockerfile 文件构建镜像
# 在 Dockerfile 文件所在目录执行
docker build -t <镜像名称> .
容器
1. 新建并启动容器
# 输出一个“hello world”之后终止容器
docker run ubuntu:16.04 /bin/echo 'hello world'
# 启动一个bash终端,允许用户进行交互
docker run -it ubuntu:16.04 /bin bash
# 基于官方最新镜像启动一个redis容器,映射到本地端口和本地硬盘
docker run
--name docker-redis #设置容器名称
-p 6379:6379 #设置端口映射
-v $PWD/data:/data #设置硬盘映射
-d redis:latest #设置基于的镜像
--appendonly yes #设置打开redis持久化配置
2. 启动已经终止的容器
docker container start <容器ID>
3. 后台运行
docker run -d ubuntu:16.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
4. 查看正在运行的容器信息
docker container ls
or
docker ps
5. 查看所有的容器信息
docker container ls -a
or
docker ps -a
# 查看容器的摘要信息不省略
docker ps -a --no-trunc
6. 获取容器的输出信息
docker container logs <容器ID 或 名称>
7. 终止一个运行中的容器
docker container stop <容器ID>
8. 退出终端
exit 或者 Crtl + d
9. 重启一个运行态的容器
docker container restart <容器ID>
10. 进入在后台运行的容器
# 从 stdin 中 exit 时,会导致容器的终止
docker attach <容器ID>
或
# 从 stdin 中 exit 时,不会导致容器的终止
docker exec -it <容器ID> bash
11. 导出本地某个容器
docker export <容器ID> > <导出文件名>
12. 导入容器快照
cat ubuntu.tar | docker import - <容器名>
13. 删除一个处于终止状态的容器
docker container rm <容器ID 或 名称>
14. 清理所有处于终止状态的容器
docker container prune
15. docker 批量命令
# 启动所有的容器(tail -n +2 表示从第二行开始读取)
docker start $(docker ps -a | awk '{print $1}' | tail -n +2)
# 停止所有的容器
docker stop $(docker ps -a | awk '{print $1}' | tail -n +2)
# 删除所有的容器
docker rm $(docker ps -a | awk '{print $1}' | tail -n +2)
# 删除所有的镜像
docker rmi $(docker p_w_picpaths | awk '{print $3}' | tail -n +2)