Docker 常用命令大全(超详细笔记|适合新手+日常查阅)
·
一份简单、清晰、实用的 Docker 命令速查手册,无需翻文档,复制即用!
文章目录
前言
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 |
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)