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 |