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 许可发布