Skip to content

Docker CLI 命令大全

本文档提供 Docker CLI 的完整命令参考,包括所有命令、选项和使用示例。

目录

  1. 命令概览
  2. 镜像命令
  3. 容器命令
  4. 网络命令
  5. 卷命令
  6. 系统命令
  7. Compose 命令

命令概览

命令分类

分类命令说明
镜像docker image镜像管理
容器docker container容器管理
网络docker network网络管理
docker volume卷管理
系统docker system系统管理
插件docker plugin插件管理
上下文docker context上下文管理
构建docker buildx构建扩展

全局选项

bash
docker [OPTIONS] COMMAND

Options:
  --config string      配置文件位置 (默认 ~/.docker)
  -c, --context string 使用指定的上下文
  -D, --debug          启用调试模式
  -H, --host list      守护进程 socket
  -l, --log-level string 日志级别
  --tls                使用 TLS
  --tlscacert string   CA 证书路径
  --tlscert string     TLS 证书路径
  --tlskey string      TLS 密钥路径
  --tlsverify          使用 TLS 并验证远程
  -v, --version        显示版本

镜像命令

docker image

bash
# 列出镜像
docker image ls [OPTIONS]
  -a, --all             显示所有镜像(包括中间层)
  --digests             显示摘要
  -f, --filter filter   过滤条件
  --format string       格式化输出
  --no-trunc            不截断输出
  -q, --quiet           只显示 ID

# 示例
docker image ls
docker image ls --filter dangling=true
docker image ls --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"

# 拉取镜像
docker image pull [OPTIONS] NAME[:TAG|@DIGEST]
  -a, --all-tags        拉取所有标签
  --disable-content-trust  跳过镜像验证
  --platform string     指定平台

# 示例
docker image pull nginx:alpine
docker image pull --platform linux/arm64 nginx:alpine

# 推送镜像
docker image push [OPTIONS] NAME[:TAG]
  -a, --all-tags        推送所有标签
  --disable-content-trust  跳过镜像签名

# 示例
docker image push myregistry/nginx:alpine

# 删除镜像
docker image rm [OPTIONS] IMAGE [IMAGE...]
  -f, --force           强制删除
  --no-prune            不删除未标记的父镜像

# 示例
docker image rm nginx:alpine
docker image rm $(docker image ls -q)

# 构建镜像
docker image build [OPTIONS] PATH | URL | -
  -t, --tag list        镜像标签
  -f, --file string     Dockerfile 名称
  --build-arg list      构建参数
  --target string       构建目标
  --platform string     目标平台
  --no-cache            不使用缓存
  --pull                始终拉取最新基础镜像
  --squash              压缩层
  --label list          设置标签
  --cache-from string   缓存源

# 示例
docker image build -t myapp:1.0 .
docker image build -t myapp:1.0 -f Dockerfile.prod .
docker image build --no-cache -t myapp:1.0 .

# 其他子命令
docker image history [OPTIONS] IMAGE    # 显示历史
docker image import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]  # 从归档导入
docker image inspect [OPTIONS] IMAGE [IMAGE...]  # 显示详细信息
docker image load [OPTIONS]              # 从 tar 归档加载
docker image prune [OPTIONS]             # 删除未使用镜像
docker image save [OPTIONS] IMAGE [IMAGE...]     # 保存到 tar 归档
docker image tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]  # 标记镜像

docker build

bash
docker build [OPTIONS] PATH | URL | -

Options:
  --add-host list           添加自定义主机到 IP 映射
  --build-arg list          设置构建时变量
  --cache-from strings      缓存源镜像
  --cgroup-parent string    容器的可选父 cgroup
  --compress                压缩构建上下文
  --cpu-period int          限制 CPU CFS 周期
  --cpu-quota int           限制 CPU CFS 配额
  -c, --cpu-shares int      CPU 份额(相对权重)
  --cpuset-cpus string      允许执行的 CPU
  --cpuset-mems string      允许执行的内存节点
  --disable-content-trust   跳过镜像验证
  -f, --file string         Dockerfile 名称
  --force-rm                始终删除中间容器
  --iidfile string          将镜像 ID 写入文件
  --isolation string        容器隔离技术
  --label list              为镜像设置元数据
  -m, --memory bytes        内存限制
  --memory-swap bytes       交换限制
  --network string          构建期间的网络模式
  --no-cache                构建时不使用缓存
  --pull                    始终尝试拉取最新版本
  -q, --quiet               静默构建
  --rm                      构建成功后删除中间容器
  --secret stringArray      秘密文件以授予构建
  --security-opt strings    安全选项
  --shm-size bytes          /dev/shm 大小
  --squash                  将新构建的层压缩为单层
  --ssh stringArray         SSH 代理套接字或密钥以提供给构建
  -t, --tag list            镜像名称和标签
  --target string           设置要构建的目标构建阶段
  --ulimit ulimit           Ulimit 选项

# 示例
docker build -t myapp:1.0 .
docker build -t myapp:1.0 -f Dockerfile.prod .
docker build --no-cache -t myapp:1.0 .
docker build --build-arg VERSION=1.0 -t myapp:1.0 .
docker build --target production -t myapp:1.0 .

容器命令

docker container

bash
# 运行容器
docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]
  -d, --detach            后台运行
  -i, --interactive       保持 STDIN 打开
  -t, --tty               分配伪终端
  --rm                    停止后自动删除
  --name string           容器名称
  -p, --publish list      端口映射
  -P, --publish-all       暴露所有端口
  -v, --volume list       挂载卷
  --mount mount           高级挂载
  -e, --env list          环境变量
  --env-file list         环境变量文件
  --network string        连接网络
  --link list             链接到其他容器
  -h, --hostname string   主机名
  --add-host list         添加主机映射
  --dns list              DNS 服务器
  --restart string        重启策略
  --memory bytes          内存限制
  --cpus decimal          CPU 限制
  --read-only             只读根文件系统
  --user string           运行用户
  --cap-add list          添加能力
  --cap-drop list         删除能力
  --security-opt list     安全选项
  --privileged            特权模式
  --device list           添加设备
  --log-driver string     日志驱动
  --health-cmd string     健康检查命令

# 示例
docker container run -d --name web -p 80:80 nginx:alpine
docker container run -it --rm ubuntu:22.04 bash
docker container run -d --memory=512m --cpus=1.0 myapp

# 列出容器
docker container ls [OPTIONS]
  -a, --all             显示所有容器
  -f, --filter filter   过滤条件
  --format string       格式化输出
  -n, --last int        显示最后 n 个容器
  -l, --latest          显示最新容器
  --no-trunc            不截断输出
  -q, --quiet           只显示 ID
  -s, --size            显示总文件大小

# 示例
docker container ls
docker container ls -a
docker container ls --filter status=running

# 启动/停止/重启
docker container start [OPTIONS] CONTAINER [CONTAINER...]
docker container stop [OPTIONS] CONTAINER [CONTAINER...]
docker container restart [OPTIONS] CONTAINER [CONTAINER...]

Options:
  -t, --time int        等待停止的秒数

# 示例
docker container start web
docker container stop web
docker container restart web

# 删除容器
docker container rm [OPTIONS] CONTAINER [CONTAINER...]
  -f, --force           强制删除运行中的容器
  -l, --link            删除链接
  -v, --volumes         删除关联卷

# 示例
docker container rm web
docker container rm -f web
docker container prune

# 执行命令
docker container exec [OPTIONS] CONTAINER COMMAND [ARG...]
  -d, --detach          后台运行
  -e, --env list        环境变量
  -i, --interactive     保持 STDIN 打开
  --privileged          特权模式
  -t, --tty             分配伪终端
  -u, --user string     用户名或 UID
  -w, --workdir string  工作目录

# 示例
docker container exec -it web bash
docker container exec web ps aux

# 查看日志
docker container logs [OPTIONS] CONTAINER
  --details             显示额外详情
  -f, --follow          跟踪日志输出
  --since string        显示某个时间之后的日志
  --tail string         显示最后 n 行日志
  -t, --timestamps      显示时间戳
  --until string        显示某个时间之前的日志

# 示例
docker container logs web
docker container logs -f web
docker container logs --tail 100 web

# 其他子命令
docker container attach [OPTIONS] CONTAINER       # 附加到容器
docker container commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]  # 提交为新镜像
docker container cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-    # 复制文件
docker container create [OPTIONS] IMAGE [COMMAND] [ARG...]      # 创建容器
docker container diff CONTAINER                   # 检查变更
docker container export [OPTIONS] CONTAINER       # 导出容器
docker container inspect [OPTIONS] CONTAINER [CONTAINER...]     # 显示详细信息
docker container kill [OPTIONS] CONTAINER [CONTAINER...]        # 杀死容器
docker container pause CONTAINER [CONTAINER...]   # 暂停容器
docker container port CONTAINER [PRIVATE_PORT[/PROTO]]          # 列出端口映射
docker container prune [OPTIONS]                  # 删除所有停止的容器
docker container rename CONTAINER NEW_NAME        # 重命名容器
docker container stats [OPTIONS] [CONTAINER...]   # 显示资源使用统计
docker container top CONTAINER [ps OPTIONS]       # 显示运行进程
docker container unpause CONTAINER [CONTAINER...] # 恢复容器
docker container update [OPTIONS] CONTAINER [CONTAINER...]      # 更新配置
docker container wait CONTAINER [CONTAINER...]    # 等待容器停止

docker run

bash
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

# 常用选项(同 docker container run)
# 这是 docker container run 的简写形式

# 示例
docker run -d --name web -p 80:80 nginx:alpine
docker run -it --rm ubuntu:22.04 bash
docker run --rm alpine echo "Hello World"

网络命令

docker network

bash
# 列出网络
docker network ls [OPTIONS]
  -f, --filter filter   过滤条件
  --format string       格式化输出
  --no-trunc            不截断输出
  -q, --quiet           只显示 ID

# 示例
docker network ls
docker network ls --filter driver=bridge

# 创建网络
docker network create [OPTIONS] NETWORK
  -d, --driver string   驱动程序 (默认 "bridge")
  --gateway strings     子网的 IPv4 IPv6 网关
  --internal            限制外部访问
  --ip-range strings    从子范围分配容器 IP
  --ipam-driver string  IP 地址管理驱动程序
  --ipam-opt map        IPAM 驱动程序特定选项
  --ipv6                启用 IPv6 网络
  --label list          网络元数据
  -o, --opt map         驱动程序特定选项
  --scope string        控制网络范围
  --subnet strings      CIDR 格式的子网

# 示例
docker network create my-network
docker network create --driver bridge --subnet 172.20.0.0/16 my-network

# 连接/断开容器
docker network connect [OPTIONS] NETWORK CONTAINER
  --alias strings       网络内容器的别名
  --driver-opt string   驱动程序选项
  --ip string           IPv4 地址
  --ip6 string          IPv6 地址
  --link list           链接到其他容器
  --link-local-ip strings  链接本地地址

docker network disconnect [OPTIONS] NETWORK CONTAINER
  -f, --force           强制断开

# 示例
docker network connect my-network web
docker network disconnect my-network web

# 删除网络
docker network rm NETWORK [NETWORK...]
docker network prune [OPTIONS]
  -f, --force           不确认

# 其他子命令
docker network inspect [OPTIONS] NETWORK [NETWORK...]  # 显示详细信息

卷命令

docker volume

bash
# 列出卷
docker volume ls [OPTIONS]
  -f, --filter filter   过滤条件
  --format string       格式化输出
  -q, --quiet           只显示名称

# 示例
docker volume ls
docker volume ls --filter dangling=true

# 创建卷
docker volume create [OPTIONS] [VOLUME]
  -d, --driver string   指定卷驱动程序
  --label list          设置卷元数据
  -o, --opt map         设置驱动程序特定选项

# 示例
docker volume create my-volume
docker volume create --driver local --opt type=nfs my-volume

# 删除卷
docker volume rm [OPTIONS] VOLUME [VOLUME...]
docker volume prune [OPTIONS]
  -f, --force           不确认

# 其他子命令
docker volume inspect [OPTIONS] VOLUME [VOLUME...]  # 显示详细信息

系统命令

docker system

bash
# 显示系统信息
docker system info [OPTIONS]
  -f, --format string   格式化输出

# 示例
docker system info
docker system info --format '{{ .ServerVersion }}'

# 显示磁盘使用
docker system df [OPTIONS]
  -v, --verbose         显示详细信息

# 示例
docker system df
docker system df -v

# 清理系统
docker system prune [OPTIONS]
  -a, --all             删除所有未使用数据
  --filter filter       过滤条件
  -f, --force           不确认
  --volumes             清理卷

# 示例
docker system prune
docker system prune -a --volumes

# 其他子命令
docker system events [OPTIONS]  # 获取实时事件
docker system version [OPTIONS] # 显示版本

Compose 命令

docker-compose

bash
# 启动服务
docker-compose up [OPTIONS] [SERVICE...]
  -d, --detach          后台运行
  --build               构建镜像
  --force-recreate      强制重新创建容器
  --no-build            不构建镜像
  --no-deps             不启动依赖
  --no-recreate         如果容器已存在则不重新创建
  --no-start            不启动服务
  --remove-orphans      删除未在 Compose 文件中定义的容器
  --scale               扩展服务

# 示例
docker-compose up -d
docker-compose up --build
docker-compose up -d --scale web=3

# 停止服务
docker-compose down [OPTIONS]
  --rmi type            删除镜像
  -v, --volumes         删除卷
  --remove-orphans      删除未在 Compose 文件中定义的容器
  -t, --timeout int     超时秒数

# 示例
docker-compose down
docker-compose down -v

# 其他命令
docker-compose build [OPTIONS] [SERVICE...]      # 构建服务
docker-compose config [OPTIONS]                  # 验证和查看配置
docker-compose create [OPTIONS] [SERVICE...]     # 创建服务
docker-compose events [OPTIONS] [SERVICE...]     # 接收事件
docker-compose exec [OPTIONS] SERVICE COMMAND [ARGS...]  # 执行命令
docker-compose images [OPTIONS] [SERVICE...]     # 列出镜像
docker-compose kill [OPTIONS] [SERVICE...]       # 杀死服务
docker-compose logs [OPTIONS] [SERVICE...]       # 查看日志
docker-compose pause [SERVICE...]                # 暂停服务
docker-compose port [OPTIONS] SERVICE PRIVATE_PORT  # 打印端口
docker-compose ps [OPTIONS] [SERVICE...]         # 列出容器
docker-compose pull [OPTIONS] [SERVICE...]       # 拉取镜像
docker-compose push [OPTIONS] [SERVICE...]       # 推送镜像
docker-compose restart [OPTIONS] [SERVICE...]    # 重启服务
docker-compose rm [OPTIONS] [SERVICE...]         # 删除容器
docker-compose run [OPTIONS] SERVICE [COMMAND] [ARGS...]  # 运行一次性命令
docker-compose scale [SERVICE=NUM...]            # 设置服务容器数量
docker-compose start [SERVICE...]                # 启动服务
docker-compose stop [OPTIONS] [SERVICE...]       # 停止服务
docker-compose top [SERVICE...]                  # 显示运行进程
docker-compose unpause [SERVICE...]              # 恢复服务

其他常用命令

docker login/logout

bash
# 登录到仓库
docker login [OPTIONS] [SERVER]
  -p, --password string   密码
  --password-stdin stdin 读取密码
  -u, --username string   用户名

# 示例
docker login
docker login -u username -p password myregistry.com

# 登出
docker logout [SERVER]
bash
# 搜索镜像
docker search [OPTIONS] TERM
  -f, --filter filter   过滤条件
  --format string       格式化输出
  --limit int           最大结果数
  --no-trunc            不截断描述

# 示例
docker search nginx
docker search --filter stars=100 nginx

docker inspect

bash
# 显示详细信息
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
  -f, --format string   格式化输出
  -s, --size            显示总文件大小
  --type string         指定对象类型

# 示例
docker inspect nginx:alpine
docker inspect --format='{{ .NetworkSettings.IPAddress }}' web

docker stats

bash
# 显示资源使用统计
docker stats [OPTIONS] [CONTAINER...]
  -a, --all             显示所有容器
  --format string       格式化输出
  --no-stream           禁用流式统计
  --no-trunc            不截断输出

# 示例
docker stats
docker stats web
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"

docker top

bash
# 显示运行进程
docker top CONTAINER [ps OPTIONS]

# 示例
docker top web
docker top web -aux

docker cp

bash
# 复制文件
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
  -a, --archive         存档模式
  -L, --follow-link     跟随符号链接

# 示例
docker cp web:/etc/nginx/nginx.conf ./nginx.conf
docker cp ./html web:/usr/share/nginx/

docker diff

bash
# 检查容器文件系统变更
docker diff CONTAINER

# 示例
docker diff web

docker export/import

bash
# 导出容器
docker export [OPTIONS] CONTAINER
  -o, --output string   写入文件

# 示例
docker export -o web.tar web

# 导入容器
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
  -c, --change list     应用 Dockerfile 指令
  -m, --message string  提交消息

# 示例
docker import web.tar myapp:imported

docker save/load

bash
# 保存镜像
docker save [OPTIONS] IMAGE [IMAGE...]
  -o, --output string   写入文件

# 示例
docker save -o nginx.tar nginx:alpine
docker save nginx:alpine redis:alpine > images.tar

# 加载镜像
docker load [OPTIONS]
  -i, --input string tar 归档文件读取
  -q, --quiet           静默加载

# 示例
docker load -i nginx.tar
docker load < nginx.tar

docker tag

bash
# 标记镜像
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

# 示例
docker tag nginx:alpine myregistry/nginx:alpine
docker tag myapp:1.0 myapp:latest

docker history

bash
# 显示镜像历史
docker history [OPTIONS] IMAGE
  -H, --human           人类可读大小
  --no-trunc            不截断输出
  -q, --quiet           只显示 ID

# 示例
docker history nginx:alpine
docker history --no-trunc nginx:alpine

下一步

基于 MIT 许可发布