主题
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:xxxxdocker push
将本地镜像推送到仓库。
bash
docker push [OPTIONS] NAME[:TAG]
# 推送前需先 docker login 并正确 tag
docker tag myapp myregistry.com/myapp:v1
docker push myregistry.com/myapp:v1docker 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:v1docker 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:patcheddocker save
将镜像导出为 tar 文件(用于离线迁移)。
bash
docker save [OPTIONS] IMAGE [IMAGE...]
docker save -o nginx.tar nginx:latest
docker save nginx redis > images.tardocker load
从 tar 文件载入镜像。
bash
docker load [OPTIONS]
docker load -i nginx.tar
docker load < images.tardocker history
查看镜像的构建历史(各层信息)。
bash
docker history [OPTIONS] IMAGE
docker history --no-trunc myapp:v1docker search
在 Docker Hub 搜索镜像(已逐步废弃,建议用网页搜索)。
bash
docker search [OPTIONS] TERM
docker search --filter "stars=100" nginxdocker 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 nginxdocker 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 myappdocker 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 nginxdocker 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 nginxdocker 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=exiteddocker 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/nginxdocker attach
附加到容器主进程(退出会停止容器,谨慎使用)。
bash
docker attach [OPTIONS] CONTAINER
# 推荐优先使用 docker exec 而非 attachdocker 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" nginxdocker top
查看容器内运行的进程。
bash
docker top CONTAINER [ps OPTIONS]
docker top nginxdocker 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 }}' nginxdocker port
查看容器的端口映射。
bash
docker port CONTAINER [PRIVATE_PORT[/PROTO]]
docker port nginxdocker 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.logdocker diff
查看容器内文件系统相对镜像的变更(A 添加 / D 删除 / C 修改)。
bash
docker diff CONTAINER
docker diff webappdocker 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:importeddocker rename
重命名容器。
bash
docker rename CONTAINER NEW_NAME
docker rename oldname newnamedocker update
动态更新容器运行配置(重启策略、资源限制等)。
bash
docker update [OPTIONS] CONTAINER [CONTAINER...]
docker update --restart unless-stopped nginx
docker update --cpus 2 --memory 512m webappdocker 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=bridgedocker 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 mynetdocker network connect
将容器连接到网络。
bash
docker network connect [OPTIONS] NETWORK CONTAINER
docker network connect mynet webappdocker network disconnect
将容器从网络断开。
bash
docker network disconnect [OPTIONS] NETWORK CONTAINER
docker network disconnect mynet webappdocker network inspect
查看网络详情。
bash
docker network inspect NETWORK
docker network inspect mynetdocker network rm
删除网络。
bash
docker network rm NETWORK [NETWORK...]
docker network rm mynetdocker 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 mydatadocker volume ls
列出数据卷。
bash
docker volume ls [OPTIONS]
docker volume ls --filter dangling=truedocker volume inspect
查看数据卷详情(含挂载点路径)。
bash
docker volume inspect VOLUME
docker volume inspect mydatadocker volume rm
删除数据卷。
bash
docker volume rm VOLUME [VOLUME...]
docker volume rm mydatadocker 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.comdocker 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 |