docker 分为客户端和服务端两部分, docker 为客户端调用的命令, dockerd 为服务端调用的命令, 本文着重介绍客户端的用法。
主要用法:docker [ docker命令选项 ] [ 子命令 ] [ 子命令选项 ]
docker [ 子命令 ] –help 可查看每个子命令的详细用法。
docker命令选项列表
| 选项 | 说明 | 其他 |
|---|---|---|
| –config [string] | 客户端本地配置文件路径 | 默认为 ~/.docker |
| -D, –debug | 启用调试模式 | |
| –help | 打印用法 | |
| -H, –host list | 通过socket访问指定的docker守护进程(服务端) | unix:// , fd:// , tcp:// |
| -l, –log-level [string] | 设置日志级别 (debug 、info 、warn 、error 、fatal) |
默认为 info |
| –tls | 启用TLS加密 | |
| –tlscacert [string] | 指定信任的CA根证书路径 | 默认为 ~/.docker/ca.pem |
| –tlscert [string] | 客户端证书路径 | 默认为 ~/.docker/cert.pem |
| –tlskey [string] | 客户端证书私钥路径 | 默认为 ~/.docker/key.pem |
| –tlsverify | 启用TLS加密并验证客户端证书 | |
| -v, –version | 打印docker客户端版本信息 |
1. 镜像仓库相关
1.1 查找镜像
docker search [条件]
1.2 获取镜像
docker pull [仓库]:[tag]
仓库格式为 [仓库url]/[用户名]/[应用名] , 除了官方仓库外的第三方仓库要指定url, 用户名就是在对应仓库下建立的账户, 一般只有应用名的仓库代表官方镜像, 如 ubuntu、tomcat 等, 而 tag 表示镜像的版本号, 不指定时默认为 latest
1.3 推送镜像到仓库
docker push [镜像名]:[tag]
1.4 登录/退出第三方仓库
docker [login/logout] [仓库地址]
2. 本地镜像
2.1 查看本地镜像
docker images
2.2 删除本地镜像
docker rmi [镜像名 or 镜像id]
如果用镜像id作为参数, 可以只输入前几位, 能唯一确定即可(可以同时删除多个镜像, 空格隔开)。此外, 如果该镜像启动了容器需要先删除容器。
2.3 查看镜像详情
docker inspect [镜像名 or 镜像id]
2.4 打包本地镜像, 使用压缩包来完成迁移
docker save [镜像名] > [文件路径]
2.5 导入镜像压缩包
docker load < [文件路径]
2.6 修改镜像tag
docker tag [镜像名 or 镜像id] [新镜像名]:[新tag]
3. 容器相关
3.1 创建、启动容器并执行相应的命令
docker run [参数] [镜像名 or 镜像id] [命令]
如果没有指定命令是执行镜像默认的命令, 创建镜像的时候可设置。另外要注意的一点, 启动容器后要执行一个前台进程(就是能在控制台不断输出)才能使容器保持运行状态, 否则, 命令执行完容器就关闭了。
run命令常用选项
| 选项 | 说明 |
|---|---|
| -d | 后台运行容器, 并返回容器ID;不指定时, 启动后开始打印日志, Ctrl + C 退出命令同时会关闭容器 |
| -i | 以交互模式运行容器, 通常与 -t 同时使用; |
| -t | 为容器重新分配一个伪输入终端, 通常与 -i 同时使用 |
| –name “anyesu-container” | 为容器指定一个别名, 不指定时随机生成 |
| -h docker-anyesu | 设置容器的主机名, 默认随机生成 |
| –dns 8.8.8.8 | 指定容器使用的DNS服务器, 默认和宿主一致 |
| -e docker_host=172.17.0.1 | 设置环境变量 |
| –cpuset=”0-2″ or –cpuset=”0,1,2″ | 绑定容器到指定CPU运行 |
| -m 100M | 设置容器使用内存最大值 |
| –net bridge | 指定容器的网络连接类型, 支持 bridge / host / none / container 四种类型 |
| –ip 172.18.0.13 | 为容器分配固定ip(需要使用自定义网络) |
| –expose 8081 –expose 8082 | 开放一个端口或一组端口, 会覆盖镜像设置中开放的端口 |
| -p [宿主机端口]:[容器内端口] | 宿主机到容器的端口映射, 可指定宿主机的要监听的ip, 默认为 0.0.0.0 |
| -P | 注意是大写的, 宿主机随机指定一组可用的端口映射容器 expose 的所有端口 |
| -v [宿主机目录路径]:[容器内目录路径] | 挂载宿主机的指定目录(或文件)到容器内的指定目录(或文件) |
| –add-host [主机名]:[ip] | 为容器hosts文件追加host, 默认会在hosts文件最后追加 [主机名]:[容器ip] |
| –volumes-from [其他容器名] | 将其他容器的数据卷添加到此容器 |
| –link [其他容器名]:[在该容器中的别名] | 添加链接到另一个容器, 在本容器hosts文件中加入关联容器的记录, 效果类似于 --add-host |
单字符选项可以合并, 如 -i -t 可以合并为 -it
3.2 查看运行中的容器
docker ps
-a 选项可查看所有的容器3.3 开启/停止/重启容器
# 关闭容器(发送SIGTERM信号,做一些’退出前工作’,再发送SIGKILL信号)
docker stop [容器名 or 容器id]
# 强制关闭容器(默认发送SIGKILL信号, 加-s参数可以发送其他信号)
docker kill [容器名 or 容器id]
# 启动容器
docker start [容器名 or 容器id]
# 重启容器
docker restart [容器名 or 容器id]
3.4 删除容器
docker rm [容器名 or 容器id]
可以指定多个容器一起删除, 加 -f 选项可强制删除正在运行的容器
3.5 查看容器详情
docker inspect [容器名 or 容器id]
3.6 查看容器中正在运行的进程
docker top [容器名 or 容器id]
3.7 将容器保存为镜像
docker commit [容器名 or 容器id] [镜像名]:[tag]
3.8 使用Dockerfile构建镜像
docker build -t [镜像名]:[tag] -f [DockerFile名] [DockerFile所在目录]
4. 硬件资源相关
4.1 显示容器硬件资源使用情况
docker stats [选项] [0个或多个正在运行容器]
4.2 更新容器的硬件资源限制
docker update [选项]
基础子命令列表
| 选项 | 说明 |
|---|---|
| attach | 进入运行中的容器, 显示该容器的控制台界面。注意, 从该指令退出会导致容器关闭 |
| build | 根据 Dockerfile 文件构建镜像 |
| commit | 提交容器所做的改为为一个新的镜像 |
| cp | 在容器和宿主机之间复制文件 |
| create | 根据镜像生成一个新的容器 |
| diff | 展示容器相对于构建它的镜像内容所做的改变 |
| events | 实时打印服务端执行的事件 |
| exec | 在已运行的容器中执行命令 |
| export | 导出容器到本地快照文件 |
| history | 显示镜像每层的变更内容 |
| images | 列出本地所有镜像 |
| import | 导入本地容器快照文件为镜像 |
| info | 显示 Docker 详细的系统信息 |
| inspect | 查看容器或镜像的配置信息, 默认为json数据 |
| kill | -s 选项向容器发送信号, 默认为SIGKILL信号(强制关闭) |
| load | 导入镜像压缩包 |
| login | 登录第三方仓库 |
| logout | 退出第三方仓库 |
| logs | 打印容器的控制台输出内容 |
| pause | 暂停容器 |
| port | 容器端口映射列表 |
| ps | 列出正在运行的容器, -a 选项显示所有容器 |
| pull | 从镜像仓库拉取镜像 |
| push | 将镜像推送到镜像仓库 |
| rename | 重命名容器名 |
| restart | 重启容器 |
| rm | 删除已停止的容器, -f 选项可强制删除正在运行的容器 |
| rmi | 删除镜像(必须先删除该镜像构建的所有容器) |
| run | 根据镜像生成并进入一个新的容器 |
| save | 打包本地镜像, 使用压缩包来完成迁移 |
| search | 查找镜像 |
| start | 启动关闭的容器 |
| stats | 显示容器对资源的使用情况(内存、CPU、磁盘等) |
| stop | 关闭正在运行的容器 |
| tag | 修改镜像tag |
| top | 显示容器中正在运行的进程(相当于容器内执行 ps -ef 命令) |
| unpause | 恢复暂停的容器 |
| update | 更新容器的硬件资源限制(内存、CPU等) |
| version | 显示docker客户端和服务端版本信息 |
| wait | 阻塞当前命令直到对应的容器被关闭, 容器关闭后打印结束代码 |
| daemon | 这个子命令已过期, 将在Docker 17.12之后的版本中移出, 直接使用dockerd |
用于管理的子命令列表
| 选项 | 说明 |
|---|---|
| container | 管理容器 |
| image | 管理镜像 |
| network | 管理容器网络(默认为bridge、host、none三个网络配置) |
| plugin | 管理插件 |
| system | 管理系统资源。其中, docker system prune 命令用于清理没有使用的镜像, 容器, 数据卷以及网络 |
| volume | 管理数据卷 |
| swarm | 管理Swarm模式 |
| service | 管理Swarm模式下的服务 |
| node | 管理Swarm模式下的docker集群中的节点 |
| secret | 管理Swarm模式下的敏感数据 |
| stack | Swarm模式下利用compose-file管理服务 |
说明
转载请注明:清风亦平凡 » Docker 常用指令详解
支付宝扫码打赏
微信打赏