跳到主要内容

Docker 命令速查表

本页面汇总了 Docker 最常用的命令,方便快速查阅。

版本说明

本速查表基于 Docker Engine v29.x 编写。Docker Engine v29 引入了一些重要变化:

  • containerd image store 成为新安装的默认镜像存储后端,提供更好的多平台镜像支持
  • API 最低版本提升到 v1.44:使用旧版 SDK 的工具可能不兼容,需升级客户端
  • nftables 防火墙后端支持(实验性),可通过 firewall-backend: nftables 配置
  • docker image ls 默认使用新的树形视图
  • docker image load/save 支持多平台选择(--platform 参数)
  • ulimit 变化:容器默认 ulimit -n 从 1048576 改为 1024,与 systemd 默认行为一致
  • cgroup v1 已弃用:支持持续到 2029 年 5 月,建议尽快迁移到 cgroup v2
  • Docker Content Trust 已移除:从 Docker CLI 中移除,推荐使用 cosign 或 Notary

镜像命令​

命令说明
docker pull <镜像>拉取镜像
docker images列出本地镜像
docker images --tree树形结构显示镜像层(v29默认)
docker rmi <镜像>删除镜像
docker tag <镜像> <新标签>创建镜像标签
docker save -o file.tar <镜像>导出镜像
docker load -i file.tar导入镜像
docker save --platform linux/amd64,linux/arm64 -o file.tar <镜像>导出多平台镜像(v29+)
docker load --platform linux/amd64 -i file.tar加载指定平台镜像(v29+)
docker build -t <名称> .构建镜像
docker history <镜像>查看镜像历史
docker inspect <镜像>查看镜像详情(v29+含Identity字段)
docker image prune删除悬空镜像
docker image prune -a删除所有未使用的镜像

容器命令​

命令说明
docker run <镜像>创建并运行容器
docker ps列出运行中的容器
docker ps -a列出所有容器
docker start <容器>启动容器
docker stop <容器>停止容器
docker restart <容器>重启容器
docker rm <容器>删除容器
docker logs <容器>查看日志
docker exec -it <容器> bash进入容器
docker cp <容器>:<路径> <本地路径>复制文件

docker run 常用选项​

选项说明
-d后台运行
-it交互式终端
--name <名称>指定容器名称
-p <主机端口>:<容器端口>端口映射
-P随机端口映射
-v <主机路径>:<容器路径>挂载数据卷
-e <变量>=<值>设置环境变量
--env-file <文件>从文件读取环境变量
--network <网络>指定网络
--restart <策略>重启策略
--memory <大小>内存限制
--cpus <数量>CPU 限制
--rm容器退出后自动删除

Dockerfile 指令​

指令说明
FROM <镜像>指定基础镜像
RUN <命令>执行命令
CMD ["命令"]容器启动命令
ENTRYPOINT ["命令"]入口点
COPY <源> <目标>复制文件
ADD <源> <目标>添加文件
WORKDIR <路径>设置工作目录
ENV <变量>=<值>设置环境变量
ARG <变量>定义构建参数
EXPOSE <端口>声明端口
VOLUME <路径>声明数据卷
USER <用户>指定运行用户
HEALTHCHECK健康检查
LABEL添加元数据

Docker Compose 命令​

命令说明
docker compose up启动服务
docker compose up -d后台启动
docker compose down停止并删除
docker compose ps查看服务状态
docker compose logs查看日志
docker compose logs -f实时查看日志
docker compose exec <服务> bash进入服务
docker compose build构建镜像
docker compose pull拉取镜像
docker compose restart重启服务
docker compose stop停止服务
docker compose start启动服务
docker compose config验证配置

网络命令​

命令说明
docker network ls列出网络
docker network create <名称>创建网络
docker network rm <名称>删除网络
docker network inspect <名称>查看网络详情
docker network connect <网络> <容器>连接网络
docker network disconnect <网络> <容器>断开网络
docker network prune删除未使用的网络

数据卷命令​

命令说明
docker volume ls列出数据卷
docker volume create <名称>创建数据卷
docker volume rm <名称>删除数据卷
docker volume inspect <名称>查看数据卷详情
docker volume prune删除未使用的数据卷

系统命令​

命令说明
docker info显示系统信息
docker version显示版本信息
docker system df查看磁盘使用
docker system prune清理未使用资源
docker system prune -a清理所有未使用资源
docker system prune -a --volumes包含数据卷清理

项目初始化命令​

命令说明
docker init交互式创建 Docker 配置文件
docker init --version显示 init 插件版本

docker init 示例:

# 在项目目录中运行,自动检测项目类型
docker init

# 支持的项目类型:Go, Java, Node, PHP, Python, Rust, ASP.NET Core

Context 管理命令​

命令说明
docker context ls列出所有 context
docker context show显示当前 context
docker context use <name>切换到指定 context
docker context create <name>创建新 context
docker context rm <name>删除 context
docker context inspect <name>查看 context 详情
docker context export <name>导出 context
docker context import <name>导入 context

Context 示例:

# 创建远程服务器 context
docker context create my-remote --docker "host=ssh://user@server"

# 切换 context
docker context use my-remote

# 切换回默认
docker context use default

Docker Desktop 命令​

命令说明
docker desktop start启动 Docker Desktop
docker desktop stop停止 Docker Desktop
docker desktop restart重启 Docker Desktop
docker desktop status查看状态
docker desktop logs查看日志
docker desktop diagnose运行诊断

Docker Debug 命令​

Docker Debug 是一个强大的调试工具,可以在不修改镜像的情况下进入任何容器或镜像进行调试。

命令说明
docker debug <容器或镜像>进入调试模式
docker debug --shell bash <容器>指定 shell
docker debug -c "命令" <容器>执行单条命令
docker debug --host ssh://user@host <容器>连接远程 Docker

调试示例:

# 调试运行中的容器
docker debug my-container

# 调试镜像(即使没有 shell)
docker debug nginx:alpine

# 在调试模式安装工具
install nmap # 安装 nmap 工具

# 查看 entrypoint
entrypoint --print

Docker Scout 命令​

Docker Scout 用于镜像安全扫描和漏洞检测。

命令说明
docker scout quickview <镜像>快速查看镜像漏洞
docker scout cves <镜像>详细 CVE 列表
docker scout recommendations <镜像>查看修复建议
docker scout compare <镜像1> <镜像2>比较两个镜像
docker scout watch监控镜像更新

扫描示例:

# 快速扫描本地镜像
docker scout quickview myapp:latest

# 扫描远程镜像
docker scout cves nginx:latest

# 查看基础镜像更新建议
docker scout recommendations myapp:latest

日志查看选项​

选项说明
-f, --follow实时跟踪
--tail <数量>显示最后 N 行
-t, --timestamps显示时间戳
--since <时间>显示指定时间后的日志
--until <时间>显示指定时间前的日志

重启策略​

策略说明
no不自动重启(默认)
always总是重启
unless-stopped除非手动停止,否则总是重启
on-failure失败时重启

常用组合命令​

# 停止所有容器
docker stop $(docker ps -q)

# 删除所有容器
docker rm $(docker ps -aq)

# 删除所有镜像
docker rmi $(docker images -q)

# 删除所有未使用的资源
docker system prune -a --volumes

# 查看容器资源使用
docker stats --no-stream

# 批量导出镜像
docker save -o images.tar $(docker images -q)

# 查看镜像历史
docker history --no-trunc <镜像>

Buildx 多平台构建命令​

命令说明
docker buildx ls列出构建器
docker buildx create --name mybuilder创建构建器
docker buildx use mybuilder切换构建器
docker buildx inspect --bootstrap查看构建器详情
docker buildx build --platform linux/amd64,linux/arm64 -t img .多平台构建
docker buildx build --push -t img .构建并推送
docker buildx imagetools inspect img查看镜像 manifest
docker buildx prune清理构建缓存

Docker Swarm 命令​

集群管理​

命令说明
docker swarm init初始化 Swarm 集群
docker swarm join --token <token> <manager-ip>:2377加入集群
docker swarm leave离开集群
docker swarm join-token worker获取 Worker 加入 token
docker swarm join-token manager获取 Manager 加入 token
docker swarm update --autolock=true启用管理器自动锁定

节点管理​

命令说明
docker node ls列出所有节点
docker node inspect <node>查看节点详情
docker node update --availability active/pause/drain <node>更新节点可用性
docker node update --label-add key=value <node>添加节点标签
docker node promote <node>提升为 Manager
docker node demote <node>降级为 Worker
docker node rm <node>删除节点

服务管理​

命令说明
docker service create --name <name> <image>创建服务
docker service ls列出所有服务
docker service ps <service>查看服务任务
docker service inspect <service>查看服务详情
docker service scale <service>=<replicas>扩缩容服务
docker service update --image <image> <service>更新服务镜像
docker service rollback <service>回滚服务
docker service rm <service>删除服务
docker service logs <service>查看服务日志

Stack 管理​

命令说明
docker stack deploy -c compose.yml <stack>部署 Stack
docker stack ls列出所有 Stack
docker stack services <stack>查看 Stack 服务
docker stack ps <stack>查看 Stack 任务
docker stack rm <stack>删除 Stack

Secret 和 Config​

命令说明
docker secret create <name> <file>创建 Secret
docker secret ls列出所有 Secret
docker secret rm <secret>删除 Secret
docker config create <name> <file>创建 Config
docker config ls列出所有 Config
docker config rm <config>删除 Config

Docker Compose 配置速查​

services:
app:
image: nginx:latest # 使用镜像
build: . # 构建镜像
container_name: my-app # 容器名称
hostname: app-server # 主机名
restart: always # 重启策略
ports:
- "8080:80" # 端口映射
environment:
- NODE_ENV=production # 环境变量
env_file:
- .env # 环境变量文件
volumes:
- ./data:/app/data # 数据卷
networks:
- app-network # 网络
depends_on:
db: # 长语法依赖配置
condition: service_healthy
required: true
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/health"]
interval: 30s
timeout: 10s
retries: 3
deploy:
resources:
limits:
cpus: '0.5'
memory: 512M
# 开发模式配置(Compose v2.22.0+)
develop:
watch:
- path: ./src
action: sync
target: /app/src
ignore:
- node_modules/
- path: ./package.json
action: rebuild

networks:
app-network:
driver: bridge

volumes:
app-data:

develop watch 动作类型​

动作说明版本要求
sync同步文件到容器,不重启v2.22.0+
sync+restart同步文件并重启容器v2.23.0+
sync+exec同步文件后执行命令v2.32.0+
rebuild重新构建镜像v2.22.0+
restart仅重启容器v2.32.0+
# sync+exec 示例
develop:
watch:
- path: ./config
action: sync+exec
target: /etc/config/
exec:
command: nginx -s reload
user: root

变量插值语法​

语法说明
${VAR}直接替换
${VAR:-default}未设置或为空时使用默认值
${VAR-default}未设置时使用默认值
${VAR:?error}未设置或为空时报错
${VAR:+replacement}设置且非空时使用 replacement