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:镜像唯一 ID SIZE:占用空间
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:指定容器名称(不可重复)。
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 行。
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
  • ⚠️ 彻底清理(镜像 + 数据卷),生产环境慎用。
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐