一张图读懂 docker 命令
docker 命令比较多,本文从容器使用流程图,介绍 docker 主要命令(version1.2+)与概念。试图回答 down 机后用户数据怎么保存之类的问题。
准备
- 假定完成了 centos 7 的 docker 安装,详细参见:
- 假定使用 mysql docker 镜像部署 mysql 服务,详细参见:
1、基本知识
命令格式:
sudo docker [COMMAND] [ARGS]
建议阅读
2、使用流程图
3、主要命令
3.1 最重要命令-帮助
sudo docker --help
sudo docker ps --help
3.2 远程仓库
search 很少用阿, 一般直接上 hub.docker.com 官方镜像文档都在上面。 阿里云加速器也不错。
sudo pull name:tag
最常用
3.3 本地镜像管理
- 列表
sudo docker images
- 删除
sudo docker rmi name:tag
- 与其他机器交换镜像 load/save
3.4 创建容器与保存镜像
- 运行
sudo docker run ...
太复杂,清认真学习参考文献 - commit 将当前容器产生的文件(增量)与配置存为镜像
3.5 容器管理
- inspect 检查容器的设置
- ps 容器列表。 -a 包含不活动的容器 -q 容器ID列表(通过管道做批量操作)
- exec 执行活动容器中的程序。常见
sudo docker exec image-name /bin/bash
- logs 打印后台容器输出
- port 检查容器端口映射
- rm 停止容器,并清理容器产生的输出或修改的文件
- 容器状态 pause/unpause , stop/kill/start/restart 等
3.6 修改容器内文件
不是真改,添加一层文件空间而已。
- cp 与本地文件系统交换文件数据
4、常见问题
- run exec 忘加参数 -it -rm 无法与容器交互
重新打开一个终端,rm 它
- 保持容器运行
网上有添加 sshd 服务等 deamon 维持容器运行。但这样做的目的?
如果是建立新镜像,build 就OK了;如果执行命令,run -it -rm 很好用。
【参考】
- 《自己动手写Docker》书摘之一: Linux Namespace。 https://yq.aliyun.com/articles/64928 ↩
- docker run 命令。 http://www.open-open.com/lib/view/open1422492851548.html ↩