Docker 命令速查手册
近期转战运维,各种和docker打交道。记录一下常用到的命令。
一、基础信息与帮助
| 命令 | 详细解释 |
|---|---|
docker --version |
仅显示 Docker 客户端版本号,用于快速确认是否安装成功。 |
docker version |
显示 Client(客户端)和 Server(守护进程)的完整版本信息,常用于排查版本不兼容问题。 |
docker info |
查看 Docker 系统全局信息,包括容器数量、镜像数量、存储驱动、CPU / 内存、镜像仓库等。 |
docker help |
显示所有可用命令分类及简要说明。 |
docker <cmd> --help |
查看某个具体命令的参数说明,例如 docker run --help。 |
二、镜像(Image)管理
1️⃣ 获取镜像
docker pull nginx:1.25
- 作用:从镜像仓库(默认 Docker Hub)下载镜像。
:1.25:指定标签(tag),不写默认是latest。
2️⃣ 查看镜像
docker images
docker image ls
-
显示本地已有镜像。
-
字段含义:
REPOSITORY:镜像名TAG:版本IMAGE ID:镜像唯一 IDSIZE:占用空间docker images -a
-
显示所有镜像(包括中间层镜像)。
3️⃣ 构建镜像
docker build -t myapp:1.0 .
-
build:根据 Dockerfile 构建镜像。 -
-t:指定镜像名和标签。 -
.:构建上下文路径(Dockerfile 所在目录)。docker build -t myapp:prod -f Dockerfile.prod .
-
-f:指定自定义 Dockerfile 文件名。
4️⃣ 删除镜像
docker rmi nginx:1.25
-
删除指定镜像(需先删除依赖它的容器)。
docker rmi <image_id>
-
使用镜像 ID 删除。
docker image prune
-
删除 悬空镜像(没有 tag 的镜像)。
docker image prune -a
-
删除 所有未被容器使用的镜像(⚠️ 谨慎)。
5️⃣ 导出 / 导入镜像
docker save myapp:1.0 > myapp.tar
-
将镜像保存为 tar 文件,便于离线传输。
docker load < myapp.tar
-
从 tar 文件加载镜像到本地。
三、容器(Container)管理
1️⃣ 运行容器
docker run nginx
-
前台运行容器,终端关闭则容器停止。
docker run -d nginx
-
-d:后台运行(detached)。docker run -p 8080:80 nginx
-
-p:端口映射宿主机端口 : 容器端口docker run --name mynginx -d -p 80:80 nginx
-
--name:指定容器名称(不可重复)。
bash
docker run --name mynginx --network host -d nginx
--network:使用网络,host指使用宿主机网络栈。注意:--network host 和-p 80:80互斥,因为--network host已经使用了宿主机网络了,就不需要再做端口映射了。
常用运行参数详解
| 参数 | 含义 |
|---|---|
-it |
交互式终端(常用于 shell) |
--rm |
容器停止后自动删除 |
-e KEY=value |
设置环境变量 |
-v |
挂载数据卷或目录 |
--restart=always |
Docker 启动时自动启动容器 |
2️⃣ 查看容器
docker ps
-
查看正在运行的容器。
docker ps -a
-
查看所有容器(含已停止)。
3️⃣ 启停容器
docker start mynginx
docker stop mynginx
docker restart mynginx
-
启动 / 停止 / 重启容器。
docker pause mynginx
docker unpause mynginx -
暂停 / 恢复容器内所有进程(冻结 CPU)。
4️⃣ 删除容器
docker rm mynginx
-
删除已停止的容器。
docker rm -f mynginx
-
强制删除(无论是否运行)。
docker container prune
-
删除所有已停止的容器。
四、进入容器与日志
进入容器
docker exec -it mynginx bash
exec:在 运行中的容器 执行命令。-it:分配交互式终端。bash:启动 Bash(若无 Bash 可用sh)。
查看日志
docker logs mynginx
-
查看容器标准输出日志。
docker logs -f mynginx
-
实时跟踪日志(类似
tail -f)。docker logs --tail 100 mynginx
-
只看最后 100 行。
bash
docker logs --tail 100 mynginx
- 查看最近 100 条日志,并持续实时输出新日志。
五、数据卷(Volume)
docker volume create mydata
-
创建一个命名数据卷。
docker volume ls
-
列出所有数据卷。
docker volume inspect mydata
-
查看数据卷详细信息(挂载点位置等)。
docker volume rm mydata
-
删除指定数据卷。
docker volume prune
-
删除未使用的数据卷。
挂载示例说明
-v mydata:/usr/share/nginx/html
-
使用 命名卷。
-v $(pwd):/app
-
使用 主机目录绑定挂载(Bind Mount)。
六、网络(Network)
docker network ls
-
查看所有网络。
docker network create mynet
-
创建自定义桥接网络。
docker network inspect mynet
-
查看网络详情(连接的容器等)。
docker network connect mynet mynginx
-
将容器接入指定网络。
docker network disconnect mynet mynginx
-
断开连接。
七、Docker Compose
docker compose up -d
-
根据
docker-compose.yml启动所有服务。docker compose down
-
停止并删除容器、网络(不会删镜像)。
docker compose ps
-
查看当前项目容器状态。
docker compose logs
-
查看所有服务日志。
docker compose build
-
构建镜像。
八、资源与性能
| 命令 | 说明 |
|---|---|
docker stats |
实时查看容器 CPU / 内存 / 网络 |
docker top mynginx |
查看容器内运行的进程 |
docker inspect mynginx |
查看容器底层 JSON 信息 |
docker diff mynginx |
查看容器文件系统变更 |
九、清理与维护
涉及容器安全,谨慎处理
docker system df
-
查看 Docker 磁盘占用情况。
docker system prune
-
删除停止容器、未用网络、悬空镜像。
docker system prune -a --volumes
-
⚠️ 彻底清理(镜像 + 数据卷),生产环境慎用。