一份简单、清晰、实用的 Docker 命令速查手册,无需翻文档,复制即用!
文章目录
- 前言
- 一、镜像管理(Images)
-
- 示例:构建并查看镜像
- 二、容器管理(Containers)
-
- 示例:运行一个 Nginx 容器
- 三、数据卷与挂载(Volumes & Mounts)
-
- 挂载方式(在 run 中使用)
- 四、网络管理(Networks)
-
- 示例:创建自定义网络让容器互通
- 五、Docker Compose(推荐使用!)
-
- 常用命令
- 示例:docker-compose.yml 文件
- 六、清理与维护
- 七、实用技巧 & 常见问题
-
- 1. 如何查看容器 IP
- 2. 如何复制文件到容器
- 3. 如何查看容器资源占用
- 4. 构建时如何跳过缓存
- 5. Windows 用户注意
- 总结:一张表掌握核心命令
前言
Docker 是现代开发中不可或缺的工具。但命令太多容易记混?别担心!这份笔记帮你把常用命令分类整理,每条都带解释、示例和注意事项,让你用起来得心应手
一、镜像管理(Images)
镜像是容器的“模板”,比如 nginx、redis、ubuntu
| docker images | 查看本地所有镜像 |
| docker pull <镜像名>:<标签> | 从仓库下载镜像(如 docker pull nginx:latest) |
| docker build -t <名称:标签> . | 用当前目录的 Dockerfile 构建镜像 |
| docker rmi <镜像ID或名称> | 删除一个镜像 |
| docker rmi $(docker images -q) | 删除所有未使用的镜像(慎用!) |
| docker image prune | 清理悬空镜像(build 失败残留) |
| docker image ls | 同 docker images,列出镜像 |
示例:构建并查看镜像
# 构建一个名为 myapp:v1 的镜像
docker build -t myapp:v1 .
# 查看是否构建成功
docker images
⚠️ 注意:
- . 表示当前目录有 Dockerfile
- 如果提示权限错误,请检查 Docker 是否运行
二、容器管理(Containers)
容器是镜像的“运行实例”,你可以启动、停止、删除它
| docker run [选项] <镜像名> | 创建并启动一个容器 |
| docker start <容器ID或名称> | 启动已停止的容器 |
| docker stop <容器ID或名称> | 停止正在运行的容器(优雅关闭) |
| docker restart <容器ID或名称> | 重启容器 |
| docker rm <容器ID或名称> | 删除已停止的容器 |
| docker rm -f <容器ID> | 强制删除正在运行的容器 |
| docker ps | 查看正在运行的容器 |
| docker ps -a | 查看所有容器(包括已停止的) |
| docker logs <容器ID> | 查看容器输出日志 |
| docker exec -it <容器ID> /bin/bash | 进入容器内部执行命令(常用) |
| docker rename <旧名> <新名> | 重命名容器 |
示例:运行一个 Nginx 容器
# 启动 Nginx,映射 80 端口,后台运行,命名为 web
docker run -d -p 80:80 –name web nginx:latest
# 查看是否运行
docker ps
# 进入容器(适用于 Ubuntu/CentOS 类镜像)
docker exec -it web /bin/bash
# 停止并删除
docker stop web
docker rm web
⚠️ 参数说明:
- -d:后台运行(detached)
- -p 80:80:将主机 80 端口映射到容器 80
- –name web:给容器起个名字,方便管理
- -it:交互式终端(i = interactive, t = tty)
三、数据卷与挂载(Volumes & Mounts)
避免容器删除后数据丢失,使用数据卷或目录挂载
| docker volume create <卷名> | 创建一个数据卷 |
| docker volume ls | 查看所有数据卷 |
| docker volume rm <卷名> | 删除数据卷 |
| docker volume prune | 删除所有未使用的卷 |
挂载方式(在 run 中使用)
# 方式1:挂载主机目录(推荐开发环境)
docker run -d -v /host/path:/container/path nginx
# 方式2:使用命名卷(推荐生产环境)
docker run -d -v mydata:/data nginx
# 方式3:只读挂载
docker run -d -v /host/config:/etc/config:ro nginx
💡 小技巧:
- Windows 用户路径写法:C:\\data → /c/data(在 WSL 或 Docker Desktop 中)
- 推荐将项目放在 WSL 文件系统中(如 ~/project),避免性能问题
四、网络管理(Networks)
容器之间通信靠网络。默认有 bridge、host、none 三种模式
| docker network ls | 查看所有网络 |
| docker network create <网络名> | 创建自定义网络 |
| docker network connect <网络> <容器> | 将容器加入网络 |
| docker network disconnect <网络> <容器> | 将容器移出网络 |
| docker network rm <网络名> | 删除网络 |
示例:创建自定义网络让容器互通
# 创建网络
docker network create mynet
# 启动两个容器并加入同一网络
docker run -d –name db –network mynet redis
docker run -d –name app –network mynet myapp:v1
# 此时 app 容器可以直接用 `db` 作为主机名访问 Redis
✅ 优势:容器可通过名称通信,无需记住 IP
五、Docker Compose(推荐使用!)
用 docker-compose.yml 文件一键管理多个服务
常用命令
| docker-compose up | 启动所有服务(前台运行) |
| docker-compose up -d | 后台启动所有服务 |
| docker-compose down | 停止并删除所有服务 |
| docker-compose ps | 查看服务状态 |
| docker-compose logs | 查看所有服务日志 |
| docker-compose build | 重新构建服务镜像 |
示例:docker-compose.yml 文件
version: '3.8'
services:
web:
image: nginx:latest
ports:
– "80:80"
volumes:
– ./html:/usr/share/nginx/html
db:
image: redis:alpine
volumes:
– dbdata:/data
volumes:
dbdata:
# 启动
docker-compose up -d
# 查看
docker-compose ps
# 停止
docker-compose down
✅ 推荐:复杂项目一定要用 docker-compose,省时省力!
六、清理与维护
定期清理可以释放磁盘空间
| docker system df | 查看 Docker 磁盘使用情况 |
| docker system prune | 清理所有未使用的资源(容器、网络、镜像、构建缓存) |
| docker system prune -a | 清理所有未使用的镜像(包括未被引用的) |
| docker builder prune | 清理构建缓存 |
⚠️ 警告:prune -a 会删除所有未使用的镜像,确认后再执行!
七、实用技巧 & 常见问题
1. 如何查看容器 IP
docker inspect <容器ID> | grep "IPAddress"
2. 如何复制文件到容器
docker cp /host/file.txt container_id:/container/path/
3. 如何查看容器资源占用
docker stats
4. 构建时如何跳过缓存
docker build –no-cache -t myapp:v1 .
5. Windows 用户注意
- 推荐使用 WSL 2 + Ubuntu 进行开发
- 项目文件放在 WSL 内(如 /home/user/project),不要放 /mnt/c/ 下,否则性能差
- Docker Desktop 设置中开启 WSL 集成
总结:一张表掌握核心命令
| 镜像 | images, pull, build, rmi |
| 容器 | run, ps, start/stop, exec, logs |
| 数据 | volume create, -v 挂载 |
| 网络 | network create, –network |
| 编排 | docker-compose up/down |
| 清理 | system prune, volume prune |



