前言
Docker 的命令虽然多,但在日常开发和运维中,我们高频使用的其实只有十几条。
与其去翻官方那晦涩的文档,不如把这份**“生产力清单”**存进收藏夹。
本文将 Docker 命令按功能场景分类,并附带了最实用的参数详解。
1. 镜像管理 (Images) —— 食材准备
镜像(Image)是静态的文件。
- 下载镜像:
Bash
# 默认拉取 latest 版本 docker pull nginx # 拉取指定版本 docker pull java:8
- 查看本地镜像:
Bash
docker images
- 删除镜像:
Bash
# 删除指定镜像 (需先删除使用该镜像的容器) docker rmi nginx:latest # 强制删除 (慎用) docker rmi -f nginx:latest
- 构建镜像:
Bash
# 读取当前目录下的 Dockerfile 构建,镜像名为 myapp,版本 v1 # 注意最后有个点 ".",代表上下文目录 docker build -t myapp:v1 .
2. 容器生命周期 (Container) —— 烹饪过程
容器(Container)是运行起来的进程。
🔥 最核心命令:docker run
启动一个新容器,参数非常多,记住这几个就够了:
Bash
docker run -d -p 8080:80 -v /data:/var/www --name my-web nginx
-d:后台运行 (Detached mode)。如果不加,容器日志会霸占你的终端,关掉终端容器就挂了。-p 宿主机端口:容器端口:端口映射。比如8080:80,意味着访问服务器的 8080,会转发给容器的 80。-v 宿主机路径:容器路径:挂载数据卷。把宿主机的目录挂载进去,防止删除容器后数据丢失。--name:给容器起个好记的名字。--restart=always:开机自启,或者挂掉后自动重启。
其他常用操作
- 查看容器:
Bash
# 查看正在运行的 docker ps # 查看所有的(包括挂掉的) docker ps -a
- 停止/启动/重启:
Bash
docker stop my-web docker start my-web docker restart my-web
- 删除容器:
Bash
# 删除已停止的容器 docker rm my-web # 强制删除正在运行的容器 docker rm -f my-web
3. 排查与调试 (Debug) —— 医生问诊
当服务跑不通时,这三板斧最管用。
- 看日志(最常用):
Bash
# -f 代表实时跟踪 (follow),--tail 200 代表只看最后200行 docker logs -f --tail 200 my-web
- 进入容器内部:
相当于 SSH 进了容器,用于查看文件或调试网络。
Bash
# -it 代表交互式终端 # /bin/bash 是 shell,如果是 Alpine 镜像可能需要换成 sh docker exec -it my-web /bin/bash
- 查看容器详情:
查 IP 地址、查挂载路径、查环境变量。
Bash
docker inspect my-web
- 文件拷贝:
在宿主机和容器之间传输文件。
Bash
# 把宿主机文件拷进容器 docker cp test.txt my-web:/app/ # 把容器文件拷出来 docker cp my-web:/app/logs.txt ./
4. 清理与维护 (Cleanup) —— 打扫卫生
开发久了,磁盘会被一堆没用的镜像和停止的容器占满。
- 一键清理(核弹级命令):
这会删除所有停止的容器、未被使用的网络、悬空的镜像(<none>)。
Bash
docker system prune
- 清理所有未使用的数据卷:
Bash
docker volume prune
总结:常用命令速查表
| 场景 | 命令 | 简记 |
| 我要启动 | docker run -d -p 80:80 --name web nginx |
后台+端口+命名 |
| 我要看日志 | docker logs -f --tail 100 web |
实时+末尾 |
| 我要进容器 | docker exec -it web /bin/bash |
交互模式 |
| 我要看列表 | docker ps -a |
列出所有 |
| 我要删容器 | docker rm -f web |
强制删除 |
| 我要删镜像 | docker rmi nginx |
删镜像 |
| 我要大扫除 | docker system prune |
释放磁盘 |
建议把这篇文章收藏或者打印出来贴在工位旁,下次遇到 Docker 问题,扫一眼就能找到答案。