跳到主要内容

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