Docker 命令行选项完全指南
一份系统性的 Docker CLI 选项参考手册,覆盖所有子命令及其参数
前言
Docker 的命令行工具(CLI)是 Docker 生态中最核心的操作接口。它的设计遵循”命令 + 子命令 + 选项 + 参数”的统一范式:
docker [全局选项] 子命令 [子命令选项] [参数]
本文将按照”先全局、后局部”的原则,从通用选项到具体子命令,全面梳理 Docker 的所有命令行选项。
第一部分:全局选项
全局选项作用于所有 Docker 命令,必须写在子命令之前。
| 选项 | 默认值 | 说明 |
|---|---|---|
--config | ~/.docker | 指定 Docker 客户端配置文件的存放目录 |
-c, --context | default | 切换 Docker 上下文,用于连接不同的 Docker daemon 或云端环境 |
-D, --debug | false | 启用调试模式,输出详细的 API 请求和响应日志 |
-H, --host | unix:///var/run/docker.sock | 指定 Docker daemon 的 socket 地址,支持 unix://、tcp://、fd:// 协议,可多次使用 |
-l, --log-level | info | 设置日志级别,可选 debug、info、warn、error、fatal |
--tls | false | 启用 TLS 加密通信 |
--tlscacert | ~/.docker/ca.pem | 指定 TLS 的 CA 根证书文件路径 |
--tlscert | ~/.docker/cert.pem | 指定 TLS 的客户端证书文件路径 |
--tlskey | ~/.docker/key.pem | 指定 TLS 的客户端私钥文件路径 |
--tlsverify | false | 启用 TLS 并验证远程服务端的证书合法性 |
-v, --version | — | 显示 Docker 客户端和服务端的版本信息 |
第二部分:镜像管理相关命令
1. docker pull —— 拉取镜像
从镜像仓库拉取镜像到本地。
| 选项 | 说明 |
|---|---|
--all-tags | 同时拉取该镜像的所有标签 |
--disable-content-trust | 跳过镜像的签名验证(默认启用) |
--platform | 指定目标平台,如 linux/amd64、linux/arm64 |
-q, --quiet | 静默模式,减少输出信息 |
2. docker push —— 推送镜像
将本地镜像推送到远程镜像仓库。
| 选项 | 说明 |
|---|---|
--all-tags | 同时推送该镜像的所有标签 |
--disable-content-trust | 跳过镜像签名(默认启用) |
-q, --quiet | 静默模式 |
3. docker images / docker image ls —— 列出镜像
显示本地已下载的镜像列表。
| 选项 | 说明 |
|---|---|
-a, --all | 显示所有镜像,包括中间层(悬空镜像) |
--digests | 显示镜像的摘要信息(SHA256) |
-f, --filter | 按条件过滤,支持 dangling=true/false、label=、since=、before=、reference= |
--format | 使用 Go template 自定义输出格式 |
--no-trunc | 不截断镜像 ID,显示完整值 |
-q, --quiet | 只显示镜像 ID,常用于脚本批处理 |
4. docker rmi / docker image rm —— 删除镜像
删除一个或多个本地镜像。
| 选项 | 说明 |
|---|---|
-f, --force | 强制删除,即使镜像正在被容器使用 |
--no-prune | 不删除未被标记的父镜像(保留中间层) |
5. docker build —— 构建镜像
从 Dockerfile 和上下文构建镜像。
| 选项 | 说明 |
|---|---|
--add-host | 在容器内添加主机名到 IP 的映射,可多次使用 |
--build-arg | 传递构建时变量,格式 KEY=VALUE,可多次使用 |
--build-arg-file | 从文件读取 build-arg,每行一个 KEY=VALUE |
--cache-from | 指定可作为缓存来源的镜像,可多次使用 |
--disable-content-trust | 跳过镜像签名验证 |
-f, --file | 指定 Dockerfile 的路径(默认是上下文根目录的 Dockerfile) |
--iidfile | 将构建生成的镜像 ID 写入指定文件 |
--isolation | 设置隔离技术(Windows 专用):default、process、hyperv |
--label | 为镜像添加元数据标签,可多次使用 |
--no-cache | 构建时不使用任何缓存层 |
--platform | 指定目标构建平台 |
--progress | 设置输出进度样式:auto、plain、tty |
--pull | 始终尝试重新拉取基础镜像的最新版本 |
-q, --quiet | 静默模式,只输出最终镜像 ID |
--rm | 构建成功后删除中间容器(默认开启) |
--secret | 传递构建秘钥(BuildKit 特性),格式 id=xxx,src=xxx |
--security-opt | 设置安全选项,如 apparmor=xxx、seccomp=xxx |
--shm-size | 设置容器内 /dev/shm 共享内存的大小 |
-t, --tag | 为镜像打标签,可多次使用 |
--target | 多阶段构建中,只构建到指定的 stage |
--output | 设置输出类型和目的地(BuildKit 特性) |
--allow | 允许 BuildKit 访问外部资源(实验性) |
--attest | 为镜像添加软件证明(BuildKit 特性) |
--builder | 指定使用的 builder 实例名称 |
--ssh | SSH agent 转发配置(BuildKit 特性) |
6. docker commit —— 提交容器为新镜像
将容器的当前状态保存为新镜像。
| 选项 | 说明 |
|---|---|
-a, --author | 设置作者信息 |
-c, --change | 应用 Dockerfile 指令到新镜像,如 CMD、ENV、EXPOSE 等,可多次使用 |
-m, --message | 添加提交信息 |
-p, --pause | 提交时暂停容器(默认开启) |
7. docker tag —— 打标签
为本地镜像添加额外的标签名称。
无选项,格式:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
8. docker save —— 导出镜像
将镜像保存为 tar 归档文件。
| 选项 | 说明 |
|---|---|
-o, --output | 指定输出文件路径(默认输出到 stdout) |
9. docker load —— 导入镜像
从 tar 归档文件加载镜像。
| 选项 | 说明 |
|---|---|
-i, --input | 指定输入的 tar 文件路径 |
-q, --quiet | 静默模式,减少输出 |
10. docker import —— 导入文件系统
从 tar 文件或 URL 导入内容作为镜像。
| 选项 | 说明 |
|---|---|
-c, --change | 应用 Dockerfile 指令到镜像,可多次使用 |
-m, --message | 提交信息 |
--platform | 指定平台 |
11. docker history —— 查看构建历史
显示镜像的构建层级历史。
| 选项 | 说明 |
|---|---|
--format | 自定义输出格式 |
-H, --human | 以人类可读格式显示大小和时间(默认开启) |
--no-trunc | 不截断输出内容 |
-q, --quiet | 只显示镜像 ID |
12. docker image prune —— 清理无用镜像
删除未被使用的悬空镜像。
| 选项 | 说明 |
|---|---|
-a, --all | 删除所有未使用的镜像,不仅限于悬空镜像 |
--filter | 按条件过滤,如 until=24h |
-f, --force | 强制执行,不提示确认 |
第三部分:容器生命周期管理
1. docker run —— 创建并启动容器
这是 Docker 最核心、选项最丰富的命令。以下按功能分组:
基础控制
| 选项 | 说明 |
|---|---|
-d, --detach | 后台运行容器,不占用当前终端 |
--detach-keys | 自定义从容器脱离的按键序列,默认 ctrl-p,ctrl-q |
--name | 为容器指定一个名称(否则自动生成) |
--restart | 重启策略:no(不重启)、on-failure[:max-retry]、always、unless-stopped |
--rm | 容器退出时自动删除,适用于临时任务 |
--pull | 镜像拉取策略:always(每次拉取)、missing(本地缺失时拉取)、never(仅使用本地) |
网络与端口
| 选项 | 说明 |
|---|---|
-p, --publish | 端口映射,格式 [host_ip:]host_port:container_port[/protocol],可多次使用 |
-P, --publish-all | 将容器声明的所有 EXPOSE 端口随机映射到宿主机 |
--network | 网络模式:bridge、host、none、container:<name>、自定义网络名 |
--network-alias | 在自定义网络中的别名,可多次使用 |
--dns | 设置 DNS 服务器,可多次使用 |
--dns-opt | DNS 选项,可多次使用 |
--dns-search | DNS 搜索域,可多次使用 |
--add-host | 添加主机名映射,格式 hostname:ip,可多次使用 |
--hostname | 设置容器内主机名 |
--domainname | 设置 NIS 域名 |
存储与文件系统
| 选项 | 说明 |
|---|---|
-v, --volume | 挂载卷,支持 host_path:container_path[:mode] 或 volume_name:container_path,可多次使用 |
--mount | 更安全、更明确的挂载方式,格式 type=bind/volume/tmpfs,src=...,dst=... |
--tmpfs | 挂载 tmpfs 内存文件系统,可多次使用 |
--volumes-from | 从其他容器挂载所有卷,可多次使用 |
--volume-driver | 指定卷驱动 |
-w, --workdir | 设置容器内的工作目录 |
环境变量
| 选项 | 说明 |
|---|---|
-e, --env | 设置环境变量,格式 KEY=VALUE,可多次使用 |
--env-file | 从文件读取环境变量(每行一个 KEY=VALUE) |
用户与权限
| 选项 | 说明 |
|---|---|
-u, --user | 以指定 UID 或用户名运行容器 |
--userns | 用户命名空间模式,host 表示使用主机命名空间 |
--group-add | 添加附加组 ID,可多次使用 |
--cap-add | 添加 Linux capabilities,可多次使用 |
--cap-drop | 删除 Linux capabilities,可多次使用 |
--privileged | 赋予容器所有特权(慎用!) |
--security-opt | 安全选项:apparmor=xxx、seccomp=xxx、label=xxx |
资源限制(CPU 与内存)
| 选项 | 说明 |
|---|---|
-m, --memory | 内存硬限制,单位 b、k、m、g |
--memory-reservation | 内存软限制,当主机内存紧张时优先回收超出部分 |
--memory-swap | 内存 + swap 的总限制(设为 -1 禁用 swap) |
--memory-swappiness | 容器使用 swap 的倾向度,0~100,默认继承主机 |
--cpus | 限制使用的 CPU 核心数(如 1.5) |
--cpu-shares | CPU 相对权重,默认 1024,越低越易被抢占 |
--cpu-period | CPU CFS 调度周期(微秒) |
--cpu-quota | CPU CFS 配额(微秒) |
--cpu-rt-period | 实时调度周期(微秒) |
--cpu-rt-runtime | 实时调度运行时间(微秒) |
--cpuset-cpus | 绑定到特定 CPU 核心,如 0-3 或 0,2 |
--cpuset-mems | 绑定到特定内存节点(NUMA) |
资源限制(IO 与进程)
| 选项 | 说明 |
|---|---|
--blkio-weight | 块 IO 权重,10~1000,默认 500 |
--blkio-weight-device | 特定设备的块 IO 权重,格式 DEVICE_NAME:WEIGHT |
--device-read-bps | 设备读速率限制(bytes/秒),格式 DEVICE:rate |
--device-write-bps | 设备写速率限制(bytes/秒),格式 DEVICE:rate |
--device-read-iops | 设备读 IOPS 限制 |
--device-write-iops | 设备写 IOPS 限制 |
--pids-limit | 限制容器内最大进程数 |
交互与终端
| 选项 | 说明 |
|---|---|
-i, --interactive | 保持 STDIN 打开(即使没有附加) |
-t, --tty | 分配伪终端(TTY),常与 -i 组合为 -it |
--entrypoint | 覆盖镜像的默认 ENTRYPOINT |
健康检查
| 选项 | 说明 |
|---|---|
--health-cmd | 健康检查命令 |
--health-interval | 检查间隔时间 |
--health-retries | 连续失败多少次视为不健康 |
--health-start-period | 容器启动后多久开始健康检查 |
--health-timeout | 单次健康检查的超时时间 |
--no-healthcheck | 禁用自动健康检查 |
日志驱动
| 选项 | 说明 |
|---|---|
--log-driver | 日志驱动:json-file、syslog、journald、gelf、fluentd、awslogs、splunk、etwlogs、gcplogs、none |
--log-opt | 日志驱动选项,如 max-size=10m、max-file=3,可多次使用 |
命名空间与其他
| 选项 | 说明 |
|---|---|
--pid | PID 命名空间:host(使用主机)、container:<name>(共享其他容器) |
--ipc | IPC 命名空间:host、container:<name>、shareable、private |
--uts | UTS 命名空间:host(使用主机主机名) |
--cgroupns | Cgroup 命名空间:host、private |
--oom-kill-disable | 禁用 OOM Killer(需配合 -m 使用) |
--oom-score-adj | 调整 OOM 评分,范围 -1000~1000 |
--sig-proxy | 将接收到的信号代理给容器(默认开启) |
--stop-signal | 设置停止信号,默认 SIGTERM |
--stop-timeout | 停止超时时间(秒) |
其他选项
| 选项 | 说明 |
|---|---|
--annotation | 为容器添加注解(实验性功能) |
--cidfile | 将容器 ID 写入指定文件 |
--cgroup-parent | 设置父 cgroup 路径 |
--device | 将主机设备挂载到容器,格式 host_device[:container_device][:permissions],可多次使用 |
--init | 在容器内运行 init 进程作为 PID 1,处理僵尸进程 |
--ip | 在自定义网络中指定 IPv4 地址 |
--ip6 | 在自定义网络中指定 IPv6 地址 |
--isolation | 隔离级别(Windows):default、process、hyperv |
--label | 添加标签,格式 key=value,可多次使用 |
--label-file | 从文件读取标签 |
--link | 链接到其他容器(已弃用,建议使用网络) |
--link-local-ip | 链路本地 IP 地址,可多次使用 |
--mac-address | 指定 MAC 地址 |
--platform | 指定平台 |
--runtime | 指定运行时(如 runc、youki) |
--sysctl | 设置内核参数,格式 key=value,可多次使用 |
--default-shm-size | 设置默认 /dev/shm 大小 |
2. docker create —— 创建但不启动容器
选项与 docker run 完全相同,额外增加:
| 选项 | 说明 |
|---|---|
--pull | 创建时拉取镜像的策略:always、missing、never |
3. docker start —— 启动已存在的容器
| 选项 | 说明 |
|---|---|
-a, --attach | 附加到容器的标准输出、错误输出 |
--detach-keys | 自定义脱离按键序列 |
-i, --interactive | 保持 STDIN 打开 |
4. docker stop —— 停止运行中的容器
| 选项 | 说明 |
|---|---|
-t, --time | 等待容器退出的超时时间(秒),默认 10 |
5. docker restart —— 重启容器
| 选项 | 说明 |
|---|---|
-t, --time | 停止等待时间(秒),默认 10 |
6. docker pause / docker unpause
暂停/恢复容器内所有进程。
无选项,直接
docker pause CONTAINER/docker unpause CONTAINER
7. docker kill —— 强制终止容器
| 选项 | 说明 |
|---|---|
-s, --signal | 发送的信号,默认 SIGKILL |
8. docker rm —— 删除容器
| 选项 | 说明 |
|---|---|
-f, --force | 强制删除运行中的容器 |
-l, --link | 删除容器间的链接(不删除容器本身) |
-v, --volumes | 同时删除容器关联的匿名卷 |
9. docker rename —— 重命名容器
无选项,格式:
docker rename OLD_NAME NEW_NAME
10. docker update —— 更新容器资源限制
| 选项 | 说明 |
|---|---|
--blkio-weight | 更新块 IO 权重 |
--cpu-period | 更新 CPU CFS 周期 |
--cpu-quota | 更新 CPU CFS 配额 |
--cpu-rt-period | 更新实时调度周期 |
--cpu-rt-runtime | 更新实时调度运行时间 |
--cpu-shares | 更新 CPU 权重 |
--cpus | 更新 CPU 核心数限制 |
--cpuset-cpus | 更新 CPU 绑定 |
--cpuset-mems | 更新内存节点绑定 |
--memory | 更新内存限制 |
--memory-reservation | 更新内存软限制 |
--memory-swap | 更新内存+swap 总限制 |
--pids-limit | 更新进程数限制 |
--restart | 更新重启策略(Swarm 模式) |
第四部分:容器交互与调试
1. docker ps / docker container ls —— 列出容器
| 选项 | 说明 |
|---|---|
-a, --all | 显示所有容器(包括已停止的) |
-f, --filter | 过滤:status=、name=、label=、exited=、ancestor=、since=、until= |
--format | 自定义输出格式(Go template) |
-n | 显示最近创建的 N 个容器(包括停止的) |
-l, --latest | 只显示最近创建的一个容器 |
--no-trunc | 不截断输出 |
-q, --quiet | 只显示容器 ID |
-s, --size | 显示容器文件系统大小 |
2. docker exec —— 在运行中容器执行命令
| 选项 | 说明 |
|---|---|
-d, --detach | 后台执行命令 |
--detach-keys | 自定义脱离按键序列 |
-e, --env | 设置环境变量,可多次使用 |
--env-file | 从文件读取环境变量 |
-i, --interactive | 保持 STDIN 打开 |
--privileged | 赋予执行命令扩展权限 |
-t, --tty | 分配伪终端 |
-u, --user | 以指定用户执行 |
-w, --workdir | 指定工作目录 |
3. docker attach —— 附加到运行中容器
| 选项 | 说明 |
|---|---|
--detach-keys | 自定义脱离按键序列(默认 ctrl-p,ctrl-q) |
--no-stdin | 不附加标准输入 |
--sig-proxy | 将接收信号代理给容器(默认开启) |
4. docker logs —— 查看容器日志
| 选项 | 说明 |
|---|---|
--details | 显示额外的日志细节 |
-f, --follow | 持续跟踪日志输出(类似 tail -f) |
--since | 显示从指定时间开始的日志,如 2023-01-01T00:00:00 或 1h |
-n, --tail | 显示最后 N 行(默认显示全部) |
-t, --timestamps | 每行附带时间戳 |
--until | 显示到指定时间为止的日志 |
5. docker stats —— 实时资源监控
| 选项 | 说明 |
|---|---|
-a, --all | 显示所有容器(包括已停止的) |
--format | 自定义输出格式 |
--no-stream | 只输出一次统计信息(不持续刷新) |
--no-trunc | 不截断容器 ID |
6. docker top —— 查看容器进程
无选项,格式:
docker top CONTAINER [ps OPTIONS]
7. docker port —— 查看端口映射
无选项,格式:
docker port CONTAINER [PRIVATE_PORT[/PROTO]]
8. docker diff —— 查看文件系统变化
无选项,显示容器与初始镜像的差异:
A(添加)、C(更改)、D(删除)
9. docker cp —— 复制文件
| 选项 | 说明 |
|---|---|
-a, --archive | 归档模式,保留文件属性和权限 |
-L, --follow-link | 跟随符号链接,复制链接指向的实际文件 |
10. docker wait —— 等待容器退出
无选项,返回容器的退出码
第五部分:网络管理
1. docker network create —— 创建网络
| 选项 | 说明 |
|---|---|
--attachable | 允许容器在创建后附加到该网络 |
--config-from | 从已有网络复制配置 |
--config-only | 仅作为配置网络,不可直接使用 |
-d, --driver | 驱动类型:bridge(默认)、overlay、macvlan、ipvlan、none |
--gateway | 设置子网网关 IP |
--ingress | 创建 Swarm 模式下的入口网络 |
--internal | 创建内部网络,不提供外部访问 |
--ip-range | 限制容器 IP 分配范围 |
--ipam-driver | IP 地址管理驱动(默认 default) |
--ipam-opt | IPAM 驱动选项,可多次使用 |
--label | 添加标签,可多次使用 |
-o, --opt | 驱动选项,可多次使用 |
--scope | 网络作用域:local、swarm、global |
--subnet | 设置子网 CIDR,可多次使用 |
2. docker network connect —— 连接容器到网络
| 选项 | 说明 |
|---|---|
--alias | 在网络中的别名,可多次使用 |
--driver-opt | 驱动选项 |
--ip | 指定 IPv4 地址 |
--ip6 | 指定 IPv6 地址 |
--link | 添加网络链接(已弃用) |
--link-local-ip | 链路本地 IP,可多次使用 |
3. docker network disconnect —— 断开网络连接
| 选项 | 说明 |
|---|---|
-f, --force | 强制断开 |
4. docker network ls —— 列出网络
| 选项 | 说明 |
|---|---|
-f, --filter | 过滤:driver=、id=、label=、name=、scope=、type= |
--format | 自定义输出格式 |
--no-trunc | 不截断输出 |
5. docker network inspect —— 查看网络详情
| 选项 | 说明 |
|---|---|
--format | 自定义输出格式 |
-v, --verbose | 显示详细信息 |
6. docker network prune —— 清理未使用的网络
| 选项 | 说明 |
|---|---|
--filter | 按条件过滤 |
-f, --force | 强制不提示 |
7. docker network rm —— 删除网络
无选项,
docker network rm NETWORK [NETWORK...]
第六部分:卷管理
1. docker volume create —— 创建卷
| 选项 | 说明 |
|---|---|
-d, --driver | 驱动名称(默认 local) |
--label | 添加标签,可多次使用 |
-o, --opt | 驱动选项,可多次使用 |
2. docker volume ls —— 列出卷
| 选项 | 说明 |
|---|---|
-f, --filter | 过滤:dangling=、driver=、label=、name= |
--format | 自定义输出格式 |
3. docker volume inspect —— 查看卷详情
| 选项 | 说明 |
|---|---|
--format | 自定义输出格式 |
4. docker volume prune —— 清理未使用的卷
| 选项 | 说明 |
|---|---|
--filter | 按条件过滤 |
-f, --force | 强制不提示 |
5. docker volume rm —— 删除卷
| 选项 | 说明 |
|---|---|
-f, --force | 强制删除 |
第七部分:系统管理与信息
1. docker info —— 显示系统信息
| 选项 | 说明 |
|---|---|
-f, --format | 自定义输出格式 |
2. docker version —— 显示版本信息
| 选项 | 说明 |
|---|---|
-f, --format | 自定义输出格式 |
3. docker events —— 实时事件监控
| 选项 | 说明 |
|---|---|
--filter | 过滤事件:type=、container=、image=、label=、event=,可多次使用 |
--format | 自定义输出格式 |
--since | 从指定时间开始 |
--until | 到指定时间为止 |
4. docker system df —— 磁盘使用分析
| 选项 | 说明 |
|---|---|
--format | 自定义输出格式 |
-v, --verbose | 显示详细的使用明细 |
5. docker system prune —— 系统级清理
| 选项 | 说明 |
|---|---|
-a, --all | 删除所有未使用的资源(不仅是悬空) |
--filter | 按条件过滤 |
-f, --force | 强制不提示 |
--volumes | 同时清理未使用的卷 |
第八部分:镜像仓库管理
1. docker login —— 登录镜像仓库
| 选项 | 说明 |
|---|---|
-p, --password | 密码(不安全,建议用 --password-stdin) |
--password-stdin | 从标准输入读取密码(安全) |
-u, --username | 用户名 |
2. docker logout —— 登出镜像仓库
无选项
3. docker search —— 搜索镜像仓库
| 选项 | 说明 |
|---|---|
-f, --filter | 过滤:stars=N(星级)、is-automated=true/false、is-official=true/false |
--format | 自定义输出格式 |
--limit | 最大结果数,默认 25 |
第九部分:Swarm 集群管理(概要)
Docker Swarm 相关命令及其主要选项:
docker swarm init —— 初始化集群
| 选项 | 说明 |
|---|---|
--advertise-addr | 宣告地址 |
--autolock | 启用自动锁定 |
--availability | 节点可用性:active、pause、drain |
--cert-expiry | 证书有效期 |
--data-path-addr | 数据路径地址 |
--default-addr-pool | 默认地址池 |
--default-addr-pool-mask-length | 地址池掩码长度 |
--external-ca | 外部 CA 配置 |
--force-new-cluster | 强制从当前节点重建集群 |
--listen-addr | 监听地址 |
--max-snapshots | 最大快照数 |
--snapshot-interval | 快照间隔 |
--task-history-limit | 任务历史保留数 |
docker swarm join —— 加入集群
| 选项 | 说明 |
|---|---|
--advertise-addr | 宣告地址 |
--availability | 节点可用性 |
--data-path-addr | 数据路径地址 |
--listen-addr | 监听地址 |
--token | 加入令牌 |
docker node 子命令
docker node ls:列出节点(--filter、--format)docker node inspect:查看节点详情(--format)docker node update:更新节点(--availability、--label-add、--label-rm、--role)docker node promote/demote:角色升降级docker node rm:删除节点(--force)docker node ps:查看节点任务
docker service 子命令(选项极多,此处仅列主选项)
docker service create:创建服务(--name、--replicas、--image、--port、--network、--env、--mount、--config、--secret、--constraint、--placement-pref、--update-delay、--update-parallelism、--rollback-delay等)docker service ls:列出服务(--filter、--format)docker service ps:查看服务任务docker service scale:扩缩容docker service update:更新服务docker service rollback:回滚服务docker service logs:查看服务日志(--follow、--since、--tail、--timestamps)docker service inspect:查看服务详情docker service rm:删除服务
docker stack 子命令
docker stack deploy:部署栈(-c/--compose-file、--orchestrator)docker stack ls:列出栈docker stack ps:查看栈中的任务docker stack services:列出栈中的服务docker stack rm:删除栈docker stack config:输出配置
第十部分:其他管理命令
1. docker manifest —— 镜像清单管理
| 子命令 | 说明 |
|---|---|
docker manifest annotate | 为清单条目添加注解 |
docker manifest create | 创建多架构清单 |
docker manifest inspect | 查看清单内容 |
docker manifest push | 推送清单到仓库 |
docker manifest rm | 删除清单 |
2. docker builder —— BuildKit 构建管理
docker builder ls:列出 builder 实例docker builder inspect:查看 builder 详情docker builder create:创建 builder 实例(--driver、--driver-opt、--name)docker builder build:构建(同docker build)docker builder prune:清理构建缓存docker builder rm:删除 builderdocker builder use:切换默认 builder
3. docker config —— Swarm 配置管理
create:创建配置(--label、--template-driver)inspect:查看配置ls:列出配置(--filter、--format)rm:删除配置
4. docker secret —— Swarm 秘钥管理
create:创建秘钥(--driver、--label、--template-driver)inspect:查看秘钥ls:列出秘钥(--filter、--format)rm:删除秘钥
5. docker plugin —— 插件管理
docker plugin create:创建插件docker plugin disable/enable:禁用/启用插件docker plugin inspect:查看插件详情docker plugin install:安装插件(--alias、--disable、--grant-all-permissions)docker plugin ls:列出插件(--filter、--format)docker plugin push:推送插件docker plugin rm:删除插件(-f)docker plugin set:设置插件参数docker plugin upgrade:升级插件(--grant-all-permissions、--skip-remote-check)
6. docker context —— 上下文管理
docker context create:创建上下文(--description、--docker、--kubernetes)docker context inspect:查看上下文docker context ls:列出上下文(--format)docker context rm:删除上下文(-f)docker context show:显示当前上下文docker context update:更新上下文docker context use:切换上下文
附录:常用组合模式速查
| 场景 | 命令示例 |
|---|---|
| 交互式调试 | docker run -it --rm IMAGE /bin/bash |
| 后台服务 | docker run -d --name web -p 8080:80 --restart always IMAGE |
| 一次性任务 | docker run --rm IMAGE |
| 资源受限测试 | docker run -m 512m --cpus 1 IMAGE |
| 进入运行容器 | docker exec -it CONTAINER /bin/sh |
| 查看所有容器 | docker ps -a |
| 清理所有停止容器 | docker container prune -f |
| 清理所有未使用资源 | docker system prune -a -f --volumes |
| 批量删除镜像 | docker rmi $(docker images -q) |
结语
Docker CLI 拥有超过 40 个子命令和数百个选项,其丰富性源于 Docker 对容器生命周期每个环节的精细控制。掌握这些选项,不仅是学会 Docker 的基本操作,更是理解容器技术原理的钥匙。
建议在学习过程中:
- 用好
--help:每个命令都有详细的帮助信息 - 关注
--filter和--format:这两个选项在脚本编排中非常实用 - 理解
docker run的选项分组:从网络、存储、资源、安全四个维度理解
如需查看最新版本的变化,请参考官方文档:https://docs.docker.com/engine/reference/commandline/cli/
本文档基于 Docker v24.x ~ v27.x 特性整理,部分实验性功能可能需启用相应配置。