Skip to content
Docker 常用命令速查

Docker 常用命令速查

本文按操作对象分组整理 Docker CLI 常用命令。


命令构成解析

docker pull docker.io/library/nginx:latest
#  │    │    │          │       │    │
#  │    │    │          │       │    └── tag(版本标签)
#  │    │    │          │       └── repository(镜像名)
#  │    │    │          └── namespace(命名空间,官方为 library)
#  │    │    └── registry(仓库地址)
#  │    └── 子命令(pull / run / build ...)
#  └── Docker CLI

💡 docker run nginx 等价于 docker pull nginx + docker create nginx + docker start <id>。如果本地不存在该镜像,Docker 会自动从远程拉取。


镜像管理

# 列出本地所有镜像
docker images
# 或
docker image ls

# 拉取镜像
docker pull image_name
docker pull image_name:tag                # 指定标签
docker pull --platform=linux/amd64 nginx  # 指定 CPU 架构

# 删除镜像
docker rmi <image_id>                     # 删除单个
docker rmi $(docker images -q)            # 删除全部

# 查看镜像详细信息
docker image inspect <image_id>

# 查看镜像构建历史(层信息)
docker image history <image_id>

# 为镜像打新标签
docker tag <source_image> <target_image>:<tag>

# 保存镜像为 tar 文件
docker save -o nginx.tar nginx:latest

# 从 tar 文件加载镜像
docker load -i nginx.tar

# 清理无用镜像
docker image prune -a

容器管理

运行容器

# 基础运行
docker run image_name

# 后台运行(detached mode)
docker run -d image_name

# 端口映射:外部端口:容器内端口
docker run -p 8080:80 nginx

# 挂载卷(绑定挂载)
docker run -v /host/path:/container/path image_name

# 命名卷挂载
docker run -v volume_name:/container/path image_name

# 传递环境变量(可多次使用)
docker run -e KEY=value -e DB_HOST=localhost image_name

# 指定容器名称
docker run -d --name my_nginx nginx

# 交互模式 + 自动清理
docker run -it --rm alpine

# 重启策略
docker run --restart always nginx          # 总是重启
docker run --restart unless-stopped nginx  # 除非手动停止
docker run --restart on-failure:3 nginx    # 失败时重启,最多 3 次

# 资源限制
docker run --memory 512m --cpus 1.5 nginx  # 内存 512MB,1.5 核 CPU

# 添加 hosts 记录
docker run --add-host db.internal:192.168.1.100 nginx

# 完整示例
docker run -d \
  --name my_app \
  -p 8080:80 \
  -v /data/html:/usr/share/nginx/html \
  -e NGINX_HOST=example.com \
  --restart unless-stopped \
  nginx:1.25

容器生命周期

# 查看运行中的容器
docker ps
docker ps -a                # 包括已停止的

# 创建但不启动
docker create image_name

# 启动已停止的容器(之前的参数保持不变)
docker start <container_name|id>

# 停止容器
docker stop <container_name|id>

# 强制停止(等价于 kill -9)
docker kill <container_name|id>

# 重启容器
docker restart <container_name|id>

# 暂停/恢复容器(冻结/解冻进程)
docker pause <container_name|id>
docker unpause <container_name|id>

# 删除容器
docker rm <container_id>          # 删除已停止的
docker rm -f <container_id>       # 强制删除(即使运行中)

# 删除所有已停止的容器
docker container prune

容器信息

# 查看容器详细信息(包括启动参数、网络、挂载等)
docker inspect <container_id>

# 查看日志
docker logs <container_id>
docker logs -f <container_id>     # 实时跟踪
docker logs --tail 50 <container_id>        # 最后 50 行
docker logs --since 30m <container_id>      # 最近 30 分钟

# 查看容器内进程
docker top <container_id>

# 查看资源使用统计
docker stats
docker stats <container_id>

# 查看容器端口映射
docker port <container_id>

容器内部操作

# 在运行中的容器内执行命令
docker exec <container_id> <command>

# 进入容器交互式 Shell
docker exec -it <container_id> /bin/sh
docker exec -it <container_id> /bin/bash  # 如果容器有 bash

# 拷贝文件(容器 ↔ 宿主机)
docker cp <container_id>:/path/file ./host_path   # 从容器拷出
docker cp ./host_file <container_id>:/path/        # 拷入容器

# 查看容器文件系统变更
docker diff <container_id>

卷管理

# 创建卷
docker volume create volume_name

# 查看卷信息
docker volume inspect volume_name

# 查看卷列表
docker volume ls

# 删除卷
docker volume rm volume_name

# 删除所有未使用的卷
docker volume prune -a

# 挂载卷运行
docker run -v my_volume:/app/data nginx

# 只读挂载
docker run -v /host/data:/app/data:ro nginx

网络管理

# 查看所有网络
docker network ls

# 创建网络
docker network create my_network

# 查看网络详情
docker network inspect my_network

# 将运行中的容器连接到网络
docker network connect my_network <container_id>

# 断开容器与网络的连接
docker network disconnect my_network <container_id>

# 删除网络
docker network rm my_network

# 删除未使用的网络
docker network prune

镜像构建与仓库

# 构建镜像
docker build -t my_app:1.0 .
docker build -t my_app:1.0 -f Dockerfile.prod .   # 指定 Dockerfile

# 登录 Registry
docker login
docker login registry.example.com

# 推送镜像
docker push my_username/my_app:1.0

# 登出
docker logout

系统管理

# 查看 Docker 系统信息
docker info

# 查看磁盘使用情况
docker system df

# 一键清理:删除停止的容器、未使用的网络、悬空镜像、构建缓存
docker system prune
docker system prune -a --volumes   # 包括未使用的镜像和卷

# 查看 Docker 事件
docker events

常用命令速查表

操作 命令
搜索镜像 docker search nginx
运行并进入 Shell docker run -it --rm alpine sh
查看最后 100 行日志 docker logs --tail 100 <id>
查看环境变量 docker exec <id> env
提交容器为镜像 docker commit <id> my_image:v1
导出容器文件系统 docker export <id> > container.tar
导入为镜像 docker import container.tar my_image:v1
查看端口映射 docker port <id>