Docker 使用工具 - 命令速查·容器/镜像/网络/卷/日志·一键复制
编程开发
Docker 命令速查与使用参考工具,按容器管理、镜像管理、网络、数据卷、日志调试、系统信息等分类整理常用命令,支持关键词搜索、参数说明、使用场景示例,一键复制快速执行。Docker 新手入门和日常运维必备
🐳
Docker 命令速查
📊
命令统计
65
匹配命令
65
总命令数
8
分类数
全部分类
当前分类
容器管理容器的创建、启动、停止、删除、执行命令等20 条
后台运行容器
以后台模式运行容器,映射端口 8080→80
docker run -d --name myapp -p 8080:80 nginx点击复制•-d: 后台运行(detached)
•--name: 指定容器名称
•-p: 端口映射(宿主机:容器)
交互式运行容器
以交互模式运行容器并进入 bash shell
docker run -it ubuntu /bin/bash点击复制•-it: 交互模式 + 分配 TTY
•/bin/bash: 启动命令
带环境变量运行
运行 MySQL 容器并设置 root 密码
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:8点击复制•-e: 设置环境变量
•MYSQL_ROOT_PASSWORD: MySQL root 密码
挂载数据卷运行
将宿主机目录挂载到容器内
docker run -d --name web -v /host/data:/container/data -p 80:80 nginx点击复制•-v: 挂载卷(宿主机路径:容器路径)
•可加 :ro 只读模式
自动重启策略
设置容器重启策略为"除非手动停止"
docker run -d --restart unless-stopped --name web nginx点击复制•--restart: 重启策略
•no: 不自动重启
•always: 总是重启
•unless-stopped: 除非手动停止
•on-failure: 仅失败时重启
加入指定网络
将容器加入自定义网络并设置网络别名
docker run -d --name web --network mynet --network-alias webapp nginx点击复制•--network: 指定网络名称
•--network-alias: 网络内别名(DNS)
限制资源使用
限制容器的 CPU 和内存使用量
docker run -d --name web --cpus=1.5 --memory=512m nginx点击复制•--cpus: CPU 核数限制
•--memory: 内存上限(m/g)
查看运行中的容器
列出当前正在运行的容器
docker ps点击复制•-a: 包含已停止的容器
•-q: 仅显示容器 ID
•--format: 自定义输出格式
格式化查看所有容器
以表格形式展示所有容器(含已停止)的关键信息
docker ps -a --format "table {{.ID}} {{.Names}} {{.Status}} {{.Ports}}"点击复制•-a: 所有容器
•--format: Go 模板格式化输出
停止容器
优雅停止运行中的容器(发送 SIGTERM,等待 10s 后 SIGKILL)
docker stop myapp点击复制•-t: 超时秒数
•docker stop -t 5 myapp
启动已停止的容器
重新启动一个已停止的容器
docker start myapp点击复制•-a: 前台模式启动
•-i: 交互模式
重启容器
重启运行中或已停止的容器
docker restart myapp点击复制•-t: 超时秒数
删除容器
删除已停止的容器
docker rm myapp点击复制•-f: 强制删除运行中的容器
•docker rm -f myapp
删除所有容器
批量删除所有容器(含已停止的)
docker rm $(docker ps -aq)点击复制•$(docker ps -aq): 获取所有容器 ID
进入运行中的容器
在运行中的容器内执行命令(进入 shell)
docker exec -it myapp /bin/bash点击复制•-it: 交互模式
•可换成 /bin/sh 或具体命令
查看容器详细信息
以 JSON 格式返回容器的完整配置和状态信息
docker inspect myapp点击复制•-f: Go 模板过滤
•docker inspect -f "{{.NetworkSettings.IPAddress}}" myapp
实时查看容器资源占用
实时显示所有容器的 CPU、内存、网络 I/O 等使用情况
docker stats点击复制•--no-stream: 只显示一次不刷新
•可指定容器名
容器与宿主机互拷文件
在容器和宿主机之间复制文件
docker cp myapp:/app/data.txt ./data.txt点击复制•容器→宿主机: docker cp 容器:路径 宿主机路径
•宿主机→容器: docker cp 宿主机路径 容器:路径
重命名容器
修改容器名称
docker rename old-name new-name点击复制清理已停止容器
删除所有已停止的容器
docker container prune -f点击复制•-f: 跳过确认提示
•--filter: 过滤条件
镜像管理镜像的拉取、构建、删除、标签管理等10 条
拉取镜像
从仓库拉取指定镜像
docker pull nginx:latest点击复制•tag: 标签(默认 latest)
•--platform: 指定平台(如 linux/arm64)
查看本地镜像列表
列出本地所有镜像
docker images点击复制•-q: 仅显示 ID
•--format: 格式化输出
•-a: 包含中间层镜像
构建镜像
根据当前目录的 Dockerfile 构建镜像
docker build -t myapp:v1.0 .点击复制•-t: 标签(name:tag)
•-f: 指定 Dockerfile 路径
•--no-cache: 不使用缓存
•--build-arg: 构建参数
带参数构建镜像
传递构建参数给 Dockerfile 中的 ARG 指令
docker build --build-arg NODE_VERSION=20 -t myapp .点击复制•--build-arg: 键值对
•对应 Dockerfile 中的 ARG 指令
给镜像打标签
为镜像添加新的标签(常用于推送到远程仓库)
docker tag myapp:v1 registry.example.com/myapp:v1点击复制•格式: docker tag 源镜像:标签 目标镜像:标签
删除镜像
删除本地镜像
docker rmi nginx:old点击复制•-f: 强制删除
•docker rmi -f nginx:old
查看镜像构建历史
显示镜像的每一层构建信息
docker history nginx:latest点击复制•--no-trunc: 显示完整命令
•-q: 仅显示 ID
导出镜像为 tar 文件
将镜像保存为 tar 归档文件(用于离线传输)
docker save -o myapp.tar myapp:v1点击复制•-o: 输出文件路径
从 tar 文件导入镜像
从 tar 归档文件加载镜像
docker load -i myapp.tar点击复制•-i: 输入文件路径
清理无用镜像
删除所有未被任何容器使用的镜像(悬空+未引用)
docker image prune -a -f点击复制•-a: 删除所有未使用的镜像(不仅是悬空的)
•-f: 跳过确认
•--filter: 过滤条件
网络管理Docker 网络的创建、连接、查看等8 条
查看网络列表
列出所有 Docker 网络
docker network ls点击复制•-q: 仅显示 ID
创建自定义网络
创建一个 bridge 类型的自定义网络
docker network create --driver bridge mynet点击复制•--driver: 网络驱动(bridge/overlay/macvlan)
•--subnet: 指定子网
•--gateway: 指定网关
创建指定子网的网络
创建网络并指定 IP 子网范围和网关
docker network create --subnet 172.20.0.0/16 --gateway 172.20.0.1 mynet点击复制•--subnet: CIDR 格式子网
•--gateway: 网关地址
将容器连接到网络
将运行中的容器连接到指定网络
docker network connect mynet myapp点击复制从网络断开容器
将容器从指定网络断开
docker network disconnect mynet myapp点击复制•-f: 强制断开
查看网络详情
以 JSON 格式显示网络的详细配置和连接的容器
docker network inspect mynet点击复制删除网络
删除未被任何容器使用的网络
docker network rm mynet点击复制清理无用网络
删除所有未被使用的网络
docker network prune -f点击复制•-f: 跳过确认
数据卷数据卷的创建、挂载、清理等6 条
查看数据卷列表
列出所有 Docker 数据卷
docker volume ls点击复制•-q: 仅显示名称
创建数据卷
创建一个命名数据卷
docker volume create mydata点击复制•--driver: 卷驱动(默认 local)
查看数据卷详情
显示数据卷的详细信息(包括挂载路径)
docker volume inspect mydata点击复制删除数据卷
删除未被容器使用的数据卷
docker volume rm mydata点击复制•-f: 强制删除
清理无用数据卷
删除所有未被容器使用的数据卷
docker volume prune -f点击复制•-a: 删除所有未使用的卷
•-f: 跳过确认
绑定挂载宿主机目录
将宿主机目录直接挂载到容器(Bind Mount)
docker run -d -v /host/path:/container/path --name web nginx点击复制•/host/path: 宿主机绝对路径
•:ro 可加只读模式
日志与调试查看日志、进入容器、调试排查等6 条
查看容器日志
查看容器的标准输出日志
docker logs myapp点击复制•-f: 实时跟踪(follow)
•--tail 100: 最后 100 行
•--since 1h: 最近 1 小时
•--until: 截止时间
实时跟踪最后 N 行日志
实时跟踪容器日志输出,只显示最后 50 行
docker logs --tail 50 -f myapp点击复制•--tail N: 显示最后 N 行
•-f: 持续跟踪新日志
查看最近 N 时间内的日志
查看容器最近 2 小时的日志
docker logs --since 2h myapp点击复制•--since: 时间范围(s/m/h/d)
•--until: 截止时间
查看容器内进程
显示容器内正在运行的进程列表
docker top myapp点击复制查看 Docker 系统事件
实时查看 Docker 守护进程的事件流(容器创建/启动/停止等)
docker events --since 1h点击复制•--since: 起始时间
•--until: 截止时间
•--filter: 事件过滤
查看容器文件系统变更
显示容器文件系统自创建以来的变更(A=添加 M=修改 D=删除)
docker diff myapp点击复制系统信息Docker 系统信息、磁盘占用、资源统计等5 条
查看 Docker 系统信息
显示 Docker 守护进程的系统级信息(版本、驱动、资源等)
docker info点击复制•-f: Go 模板过滤
查看 Docker 版本
显示 Docker 客户端和服务端的版本信息
docker version点击复制•-f: Go 模板过滤
查看 Docker 磁盘占用
显示镜像、容器、卷等各占用的磁盘空间
docker system df点击复制•-v: 详细模式
•--format: 格式化输出
一键清理所有无用资源
删除所有已停止的容器、未使用的网络、悬空镜像和构建缓存
docker system prune -a -f点击复制•-a: 同时删除所有未使用的镜像和卷
•-f: 跳过确认
•--volumes: 包含数据卷
查看 Docker 服务状态
检查 Docker 守护进程的运行状态
systemctl status docker点击复制•systemctl start docker: 启动
•systemctl stop docker: 停止
•systemctl restart docker: 重启
Composedocker compose 常用命令7 条
启动 Compose 项目
在后台启动 docker-compose.yml 中定义的所有服务
docker compose up -d点击复制•-d: 后台运行
•--build: 启动前重新构建
•--force-recreate: 强制重建容器
停止并删除 Compose 资源
停止所有服务并删除容器、网络
docker compose down点击复制•-v: 同时删除数据卷
•--rmi local: 删除本地镜像
查看 Compose 服务状态
显示 Compose 项目中所有服务的运行状态
docker compose ps点击复制查看 Compose 服务日志
实时跟踪所有服务的日志输出
docker compose logs -f点击复制•-f: 实时跟踪
•--tail N: 最后 N 行
•服务名: 只看指定服务
进入 Compose 服务容器
在 Compose 项目的指定服务容器内执行命令
docker compose exec web /bin/bash点击复制•服务名: compose 中的服务名
•/bin/bash: 执行的命令
重新构建 Compose 镜像
重新构建 Compose 中定义的所有服务镜像
docker compose build --no-cache点击复制•--no-cache: 不使用缓存
•服务名: 只构建指定服务
重启 Compose 服务
重启所有服务(不重新构建)
docker compose restart点击复制•服务名: 只重启指定服务
•-t: 超时秒数
仓库与推送镜像仓库登录、推送、拉取等3 条
登录镜像仓库
登录到指定的 Docker 镜像仓库
docker login registry.example.com点击复制•-u: 用户名
•-p: 密码(不推荐,会留在历史记录)
•默认登录 Docker Hub
推送镜像到仓库
将本地镜像推送到远程仓库
docker push registry.example.com/myapp:v1点击复制•需先 docker tag 打标签
搜索 Docker Hub 镜像
在 Docker Hub 上搜索镜像
docker search nginx点击复制•--limit: 限制结果数量
•--filter: 过滤(如 is-automated)
📖
工具说明
📖 什么是 Docker 使用工具
Docker 使用工具是一个命令速查与使用参考工具,按容器管理、镜像管理、网络、数据卷、日志调试、系统信息、Compose、仓库推送等 8 大分类整理了 60+ 条常用 Docker 命令。每条命令包含完整示例、参数说明和使用场景,支持关键词搜索和一键复制,适合 Docker 新手入门和日常运维快速查阅。
📝 使用说明
⚠️ 注意事项
命令中的 myapp、mynet、mydata 等为示例名称,请替换为实际使用的容器名、网络名或卷名。部分命令(如 prune、rm)具有破坏性,执行前请确认。docker compose(V2)已取代 docker-compose(V1)。
❓ 常见问题
docker run 和 docker start 有什么区别?
docker run 会根据镜像创建并启动一个新容器;docker start 是启动一个已存在但已停止的容器。
-d、-it、--rm 分别是什么?
-d 后台运行;-it 交互模式+TTY(进入容器 shell);--rm 容器停止后自动删除。
docker stop 和 docker kill 的区别?
docker stop 发送 SIGTERM 信号优雅停止(默认等 10s);docker kill 发送 SIGKILL 立即强制终止。
数据卷和绑定挂载的区别?
数据卷(volume)由 Docker 管理,路径在 /var/lib/docker/volumes/;绑定挂载(bind mount)直接指定宿主机路径,依赖宿主机目录结构。
如何彻底清理 Docker 占用的磁盘空间?
执行 docker system prune -a --volumes -f,会删除所有停止的容器、未用镜像、未用卷和网络。谨慎使用!
docker compose 和 docker-compose 有什么区别?
docker compose(V2)是 Docker CLI 的插件,用空格分隔;docker-compose(V1)是独立的 Python 程序,已停止维护。推荐使用 V2。