Skip to content

Docker CLI 命令速查

本页按命令分组整理 Docker 常用 CLI,每条命令包含语法、常用参数、示例

标记说明: 日常高频命令; 特定场景或较少使用命令。

镜像管理

docker images

列出本地镜像。

bash
docker images [OPTIONS] [REPOSITORY[:TAG]]

# 常用参数
# -a, --all            显示所有镜像(含中间层)
# -q, --quiet          仅显示镜像 ID
# --filter "dangling=true"  仅显示悬空镜像

docker images
docker images -q
docker images --filter "dangling=true"

docker pull

从仓库拉取镜像。

bash
docker pull [OPTIONS] NAME[:TAG|@DIGEST]

docker pull nginx
docker pull nginx:1.27-alpine
docker pull ubuntu@sha256:xxxx

docker push

将本地镜像推送到仓库。

bash
docker push [OPTIONS] NAME[:TAG]

# 推送前需先 docker login 并正确 tag
docker tag myapp myregistry.com/myapp:v1
docker push myregistry.com/myapp:v1

docker build

根据 Dockerfile 构建镜像。

bash
docker build [OPTIONS] PATH | URL | -

# 常用参数
# -t, --tag           指定镜像名与标签
# -f, --file          指定 Dockerfile 路径
# --no-cache         不使用构建缓存
# --build-arg        传入构建参数
# --target           多阶段构建时指定目标阶段

docker build -t myapp:v1 .
docker build -f Dockerfile.prod -t myapp:prod .
docker build --build-arg ENV=prod -t myapp .

docker tag

为镜像创建别名/打标签。

bash
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

docker tag nginx myregistry.com/nginx:v1

docker rmi

删除本地镜像。

bash
docker rmi [OPTIONS] IMAGE [IMAGE...]

# -f, --force   强制删除(即使被容器引用)
# 仅删除悬空镜像:docker image prune

docker rmi nginx:1.27-alpine
docker rmi $(docker images -q)   # 删除全部

docker commit

将运行中的容器保存为新镜像(应急/调试用,生产推荐 Dockerfile)。

bash
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

# -m   提交说明
# -a   作者

docker commit -m "added curl" -a "yanshaodong" webapp myapp:patched

docker save

将镜像导出为 tar 文件(用于离线迁移)。

bash
docker save [OPTIONS] IMAGE [IMAGE...]

docker save -o nginx.tar nginx:latest
docker save nginx redis > images.tar

docker load

从 tar 文件载入镜像。

bash
docker load [OPTIONS]

docker load -i nginx.tar
docker load < images.tar

docker history

查看镜像的构建历史(各层信息)。

bash
docker history [OPTIONS] IMAGE

docker history --no-trunc myapp:v1

在 Docker Hub 搜索镜像(已逐步废弃,建议用网页搜索)。

bash
docker search [OPTIONS] TERM

docker search --filter "stars=100" nginx

docker image prune

清理悬空/未使用镜像。

bash
docker image prune [OPTIONS]

docker image prune          # 删除悬空镜像
docker image prune -a       # 删除所有未被容器引用的镜像
docker image prune -a --filter "until=24h"

容器生命周期

docker create

创建容器但不启动。

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

docker create --name mynginx nginx

docker run

创建并启动容器(最核心命令)。

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

# 常用参数
# -d, --detach           后台运行
# -it                   交互模式(通常组合 -i -t)
# --name                指定容器名
# -p, --publish         端口映射 宿主机:容器
# -v, --volume          挂载卷/目录
# -e, --env             设置环境变量
# --rm                  容器退出后自动删除
# --network             指定网络
# --restart             重启策略(no/on-failure/always/unless-stopped)

docker run -d --name nginx -p 8080:80 nginx
docker run -it --rm ubuntu /bin/bash
docker run -d -e TZ=Asia/Shanghai --restart unless-stopped myapp

docker start

启动已停止的容器。

bash
docker start [OPTIONS] CONTAINER [CONTAINER...]

docker start nginx
docker start -a nginx    # 附加到容器并查看输出

docker stop

停止运行中的容器(发送 SIGTERM,超时再 SIGKILL)。

bash
docker stop [OPTIONS] CONTAINER [CONTAINER...]

docker stop nginx
docker stop $(docker ps -q)   # 停止全部

docker restart

重启容器。

bash
docker restart [OPTIONS] CONTAINER [CONTAINER...]

docker restart nginx

docker pause / unpause

暂停/恢复容器进程(cgroup freezer,不释放资源)。

bash
docker pause CONTAINER [CONTAINER...]
docker unpause CONTAINER [CONTAINER...]

docker kill

强制终止容器(直接 SIGKILL)。

bash
docker kill [OPTIONS] CONTAINER [CONTAINER...]

docker kill -s SIGKILL nginx

docker rm

删除容器。

bash
docker rm [OPTIONS] CONTAINER [CONTAINER...]

# -f, --force   强制删除运行中的容器
# -v            同时删除关联匿名卷

docker rm webapp
docker rm -f $(docker ps -aq)   # 删除全部容器

容器运维与查看

docker ps

列出容器。

bash
docker ps [OPTIONS]

# -a, --all      列出所有容器(含已停止)
# -q, --quiet    仅显示容器 ID
# -l, --latest   最近创建的容器
# --filter       过滤(status=exited, name=xxx)

docker ps
docker ps -a
docker ps -q -f status=exited

docker exec

在运行中的容器内执行命令(常用于进入容器)。

bash
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

# -i   保持标准输入打开
# -t   分配伪终端
# -u   指定用户
# -w   指定工作目录

docker exec -it nginx /bin/bash
docker exec -u root nginx ls /etc/nginx

docker attach

附加到容器主进程(退出会停止容器,谨慎使用)。

bash
docker attach [OPTIONS] CONTAINER

# 推荐优先使用 docker exec 而非 attach

docker logs

查看容器日志。

bash
docker logs [OPTIONS] CONTAINER

# -f, --follow   实时跟踪
# --tail N       仅显示最后 N 行
# -t, --timestamps  显示时间戳
# --since / --until  按时间过滤

docker logs -f --tail 100 nginx
docker logs --since "2026-07-01" nginx

docker top

查看容器内运行的进程。

bash
docker top CONTAINER [ps OPTIONS]

docker top nginx

docker stats

实时查看容器资源占用(CPU/内存/网络/IO)。

bash
docker stats [OPTIONS] [CONTAINER...]

docker stats                # 所有运行容器
docker stats --no-stream nginx   # 单次快照

docker inspect

查看容器/镜像/卷/网络的底层 JSON 详情。

bash
docker inspect [OPTIONS] NAME|ID [NAME|ID...]

# --format, -f   使用 Go 模板提取字段

docker inspect nginx
docker inspect -f '{{ .NetworkSettings.IPAddress }}' nginx
docker inspect -f '{{ .State.Status }}' nginx

docker port

查看容器的端口映射。

bash
docker port CONTAINER [PRIVATE_PORT[/PROTO]]

docker port nginx

docker cp

在容器与宿主机之间拷贝文件。

bash
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH

docker cp nginx:/etc/nginx/nginx.conf ./nginx.conf
docker cp ./app.log nginx:/tmp/app.log

docker diff

查看容器内文件系统相对镜像的变更(A 添加 / D 删除 / C 修改)。

bash
docker diff CONTAINER

docker diff webapp

docker export / import

导出容器文件系统为 tar / 从 tar 导入为镜像(丢失历史与元数据)。

bash
docker export [OPTIONS] CONTAINER
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

docker export -o webapp.tar webapp
docker import webapp.tar myapp:imported

docker rename

重命名容器。

bash
docker rename CONTAINER NEW_NAME

docker rename oldname newname

docker update

动态更新容器运行配置(重启策略、资源限制等)。

bash
docker update [OPTIONS] CONTAINER [CONTAINER...]

docker update --restart unless-stopped nginx
docker update --cpus 2 --memory 512m webapp

docker wait

阻塞等待容器停止并返回退出码。

bash
docker wait CONTAINER [CONTAINER...]

docker events

实时查看 Docker 守护进程事件流(用于监控/审计)。

bash
docker events [OPTIONS]

docker events --filter 'type=container' --since '2026-07-19'

网络

docker network ls

列出网络。

bash
docker network ls
docker network ls --filter driver=bridge

docker network create

创建网络(推荐自定义桥接网络替代默认 bridge)。

bash
docker network create [OPTIONS] NETWORK

# -d, --driver   驱动(bridge/overlay/host)
# --subnet / --gateway   指定子网与网关
# --driver-opt

docker network create mynet
docker network create --driver bridge --subnet 172.20.0.0/16 mynet

docker network connect

将容器连接到网络。

bash
docker network connect [OPTIONS] NETWORK CONTAINER

docker network connect mynet webapp

docker network disconnect

将容器从网络断开。

bash
docker network disconnect [OPTIONS] NETWORK CONTAINER

docker network disconnect mynet webapp

docker network inspect

查看网络详情。

bash
docker network inspect NETWORK

docker network inspect mynet

docker network rm

删除网络。

bash
docker network rm NETWORK [NETWORK...]

docker network rm mynet

docker network prune

删除所有未被使用的网络。

bash
docker network prune [OPTIONS]

docker network prune -f

数据卷

docker volume create

创建数据卷。

bash
docker volume create [OPTIONS] [VOLUME]

docker volume create mydata
docker volume create --driver local mydata

docker volume ls

列出数据卷。

bash
docker volume ls [OPTIONS]

docker volume ls --filter dangling=true

docker volume inspect

查看数据卷详情(含挂载点路径)。

bash
docker volume inspect VOLUME

docker volume inspect mydata

docker volume rm

删除数据卷。

bash
docker volume rm VOLUME [VOLUME...]

docker volume rm mydata

docker volume prune

删除所有未被容器引用的数据卷。

bash
docker volume prune [OPTIONS]

docker volume prune -f

系统与运维

docker info

显示 Docker 系统级信息(驱动、资源、配置)。

bash
docker info
docker info --format '{{ .ServerVersion }}'

docker version

显示 Docker 客户端与守护进程版本。

bash
docker version
docker version --format '{{.Server.Version}}'

docker system df

查看 Docker 磁盘占用(镜像/容器/卷/构建缓存)。

bash
docker system df
docker system df -v    # 详细视图

docker system prune

清理所有未使用的资源(停止容器、悬空镜像、网络、构建缓存)。

bash
docker system prune [OPTIONS]

docker system prune            # 基础清理
docker system prune -a         # 同时清理未引用镜像
docker system prune -a --volumes   # 同时清理未使用数据卷

docker login / logout

登录/登出镜像仓库。

bash
docker login [OPTIONS] [SERVER]
docker logout [SERVER]

docker login myregistry.com
echo "$TOKEN" | docker login -u token --password-stdin myregistry.com

docker context

管理多环境上下文(如本地/远程守护进程)。

bash
docker context ls
docker context use remote-host
docker context create remote --docker "host=ssh://user@host"

docker scout(原实验)

镜像漏洞与依赖分析(Docker Scout,需独立安装/登录)。

bash
docker scout quickview myapp:v1
docker scout cves myapp:v1

实用组合技巧

bash
# 进入运行中容器(最常用调试方式)
docker exec -it <容器> /bin/bash

# 清理全部停止的容器 + 悬空镜像 + 未用网络
docker container prune -f && docker image prune -f && docker network prune -f

# 一键释放磁盘:删除所有未使用资源(含镜像、卷)
docker system prune -a --volumes -f

# 查看某容器真实 IP
docker inspect -f '{{ .NetworkSettings.IPAddress }}' <容器>

# 导出/导入镜像用于离线环境
docker save -o app.tar myapp:v1
docker load -i app.tar

# 跟踪容器日志并按时间筛选
docker logs -f --since 1h <容器>

# 限制容器资源后运行时
docker run -d --name web --cpus 1 --memory 512m --restart unless-stopped nginx

# 批量停止并删除所有容器
docker stop $(docker ps -aq) && docker rm $(docker ps -aq)

变更日志

时间变更内容作者
2026-07-19新增 Docker CLI 命令全量速查文档,按镜像/容器/网络/卷/系统分组,并标注常用/进阶命令yanshaodong