Docker CLI 命令大全
本文档提供 Docker CLI 的完整命令参考,包括所有命令、选项和使用示例。
目录
命令概览
命令分类
| 分类 | 命令 | 说明 |
|---|---|---|
| 镜像 | 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]docker search
bash
# 搜索镜像
docker search [OPTIONS] TERM
-f, --filter filter 过滤条件
--format string 格式化输出
--limit int 最大结果数
--no-trunc 不截断描述
# 示例
docker search nginx
docker search --filter stars=100 nginxdocker 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 }}' webdocker 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 -auxdocker 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 webdocker 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:importeddocker 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.tardocker tag
bash
# 标记镜像
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
# 示例
docker tag nginx:alpine myregistry/nginx:alpine
docker tag myapp:1.0 myapp:latestdocker history
bash
# 显示镜像历史
docker history [OPTIONS] IMAGE
-H, --human 人类可读大小
--no-trunc 不截断输出
-q, --quiet 只显示 ID
# 示例
docker history nginx:alpine
docker history --no-trunc nginx:alpine