Skip to content

Docker 命令速查

命令速查不能替代对应概念页的边界说明。先确认 Docker context、对象类型和数据生命周期,再执行命令;尤其不要把 image、container、Volume 和 build cache 当作同一类可删除对象。

前置条件:已安装 Docker CLI,并只想读取当前目标的环境与磁盘概况。下面三条命令不创建或删除对象;输出应先确认 context 名称、Client/Server 版本以及各类对象占用:

bash
docker context show
docker version
docker system df --verbose

环境与 daemon

目标首要证据命令
确认 CLI/Engine 版本Client 与 Server 两段版本docker version
确认 daemon 配置storage、cgroup、rootless、警告docker info
确认当前目标context 名称docker context show
比较 contextendpoint 与 TLS 配置docker context inspect <name>
建立时间线create/start/die/oom 事件docker events --since 30m --until 0s

远程 context 下,publish 绑定中的 127.0.0.1 属于 daemon host;本地 curl 中的 127.0.0.1 属于 CLI host。两条回环路径可能位于不同主机,不能互相代替。

镜像与 Registry

目标首要证据命令
查看 image configEntrypoint、Cmd、Env、User、digestdocker image inspect demo-api:dev
列出本地镜像repository、tag、image ID、sizedocker image ls --digests
拉取并记录结果resolved digest 与状态docker pull <reference>
查看多平台 indexmanifest descriptors 与 platformdocker buildx imagetools inspect <reference>
查看历史元数据history 条目与大小docker history --no-trunc demo-api:dev
删除确认过的本地引用被删除的 tag/layer 引用docker image rm <reference>

tag 可变,image ID 只描述本地对象,Registry digest 才适合跨环境固定内容;digest 完整性不等于发布者可信。

构建与 cache

目标首要证据命令
显示完整构建步骤stage、命令与错误输出docker buildx build --progress=plain --tag demo-api:dev .
刷新基础镜像新解析的 base digestdocker buildx build --pull --tag demo-api:dev .
绕过构建 cache每一步重新执行docker buildx build --no-cache --tag demo-api:dev .
查看 cache 占用record、可回收大小、last useddocker buildx du --verbose
检查 builderdriver、节点与平台docker buildx inspect --bootstrap
删除 build cache删除记录与释放空间docker builder prune

--no-cache 不会自动重新拉取基础镜像;需要刷新时同时评估 --pulldocker builder prune 是破坏性操作,会降低后续构建命中率,远程/共享 builder 上还可能影响其他使用者。

容器与进程

目标首要证据命令
查看全部容器name、status、portsdocker container ls --all
查看最终配置/状态.Config.HostConfig.Statedocker container inspect <container>
查看应用输出带时间的 stdout/stderrdocker logs --timestamps --tail 200 <container>
查看容器进程PID、用户、参数docker top <container> -eo pid,user,args
查看资源快照CPU、memory、I/Odocker stats --no-stream <container>
查看端口映射主机地址与端口docker port <container>
优雅停止stop 信号与最终状态docker stop --timeout 10 <container>
删除已确认容器container object 与 writable layer 删除docker rm <container>

docker rm --force 会跳过正常 grace period;只有已判断无需优雅关闭且目标名称准确时使用。

网络

目标首要证据命令
列出网络driver 与 scopedocker network ls
查看 endpoint/DNScontainers、subnet、gatewaydocker network inspect <network>
创建 user-defined bridge新 network IDdocker network create demo-net
将既有容器接入网络endpoint 出现在 inspectdocker network connect demo-net <container>
断开容器endpoint 从 inspect 消失docker network disconnect demo-net <container>
删除空网络network ID 被删除docker network rm demo-net

删除 network 前确认没有仍需通信的 endpoint。hostnone 与 user-defined bridge 的隔离和 DNS 行为不同,参见网络

存储

目标首要证据命令
列出 Volumedriver 与名称docker volume ls
查看 Volumemountpoint、labels、scopedocker volume inspect <volume>
查看容器挂载type、source、destination、RWdocker container inspect <container> --format '&#123;&#123;json .Mounts&#125;&#125;'
创建命名 Volumevolume namedocker volume create <volume>
删除已确认 Volumevolume 删除结果docker volume rm <volume>
查看整体磁盘image/container/volume/cache 占用docker system df --verbose

Volume 删除通常不可恢复。删除前停止写入、按应用语义备份并验证恢复;live database 的直接 tar 不等于一致性备份。

Compose

目标首要证据命令
展开最终模型插值后的 services/networks/volumesdocker compose config
查看插值来源解析使用的环境变量docker compose config --environment
构建并等待service 状态/healthdocker compose up --build --wait
查看项目容器service、state、health、portsdocker compose ps
跟踪日志按 service 标记的输出docker compose logs --tail 200
删除项目容器与网络removed objectsdocker compose down
同时删除声明 Volumeremoved volumesdocker compose down --volumes

down --volumes 比普通 down 多删除 Compose 文件声明的 named volumes 和附着于 containers 的 anonymous volumes,可能永久删除数据;external volumes 不由 Compose 删除。

清理与破坏性操作

清理命令执行前先检查目标和数据生命周期。以下命令不应作为通用排障第一步:

命令删除范围恢复影响
docker rm <container>删除一个 stopped container 及其 writable layer;不自动删除 Volume可按原配置重建容器;未持久化数据和未另存的现场证据丢失
docker container prune所有 stopped containerswritable layer 与未另存的证据丢失
docker image rm <reference>删除指定本地 image 引用;无其他 tag 或容器引用时回收 image 数据可重新 pull/build;未推送且无其他引用的内容可能丢失
docker image prune -a所有未被容器引用的镜像需要重新 pull/build,未推送内容可能丢失
docker network rm demo-net删除指定的无活动 endpoint network;不删除容器可重建 network;自定义 subnet、options 与连接关系需重新配置
docker volume rm <volume>删除指定且未被容器使用的 Volume持久数据通常不可恢复,只能从已验证备份还原
docker volume prune默认删除未被任何 container 使用的 anonymous local volumes;--all 才扩入未使用的 named volumes被删除的 Volume 数据通常不可恢复
docker builder prune可回收 build cache后续构建变慢;共享 builder 影响更大
docker system prune默认删除所有 stopped containers、未被 container 使用的 networks、dangling images 和未使用 build cache;-a 将 image 范围扩为所有未使用 images,--volumes 加入未使用 anonymous volumes多类现场与 cache 丢失;未推送 image 需重建,加入 --volumes 后持久数据通常不可恢复
docker compose down --volumes当前 Compose project containers、Compose 创建的 networks、Compose 文件声明的 named volumes 和附着于 containers 的 anonymous volumes;不删除 external volumes被删除的 project Volume 数据可能永久丢失

建议先运行 docker system df --verbose、各类 ls/inspect,记录明确的 ID/名称,再执行最窄的删除命令。不要用宽泛 prune 代替根因分析。

完整选项与版本差异见 Docker 官方 Docker CLI referencedocker compose down;速查表只保留常用证据路径,不替代命令的 --help 输出。

概念与流程入口:Docker 架构镜像模型容器模型安全边界故障排查