Docker 常用命令速查表

Docker 日常使用中最常见的命令汇总,覆盖从镜像管理、容器操作到网络配置和系统清理的完整工作流。每个命令附带实际示例,可直接复制使用。

基础信息命令

查看 Docker 安装版本和系统级信息。

# 查看 Docker 版本信息
docker --version
docker version
 
# 查看 Docker 系统信息
docker info
 
# 查看 Docker 帮助
docker --help
docker <command> --help

镜像(Image)管理

镜像查看和搜索

# 列出本地所有镜像
docker images
docker image ls
 
# 搜索 Docker Hub 上的镜像
docker search <镜像>
docker search nginx
 
# 查看镜像详细信息
docker inspect <镜像ID或名>

镜像下载和删除

# 拉取镜像(默认 latest 标签)
docker pull <镜像>
docker pull nginx
docker pull nginx:1.21
 
# 删除镜像
docker rmi <镜像ID或名>
docker rmi nginx:latest
 
# 强制删除镜像
docker rmi -f <镜像ID>
 
# 删除所有未使用的镜像
docker image prune
docker image prune -a  # 删除所有未使用镜像(包括标签镜像)

镜像构建

# 从 Dockerfile 构建镜像
docker build -t <镜像名:标> <>
docker build -t myapp:1.0 .
 
# 从 Dockerfile 构建并指定文件名
docker build -f <Dockerfile路> -t <镜像> .
 
# 查看镜像构建历史
docker history <镜像>

容器(Container)管理

容器运行

# 运行容器(前台运行)
docker run <镜像>
docker run nginx
 
# 后台运行容器
docker run -d <镜像>
 
# 交互式运行容器
docker run -it <镜像> /bin/bash
docker run -it ubuntu:20.04 /bin/bash
 
# 运行容器并指定名称
docker run --name <容器> <镜像>
docker run --name my-nginx -d nginx
 
# 端口映射运行
docker run -p <主机端>:<容器端> <镜像>
docker run -p 8080:80 -d nginx
 
# 挂载数据卷运行
docker run -v <主机路>:<容器路> <镜像>
docker run -v /home/data:/var/data -d nginx
 
# 设置环境变量
docker run -e <变量>=<> <镜像>
docker run -e MYSQL_ROOT_PASSWORD=123456 -d mysql
 
# 综合示例
docker run -d --name web-server -p 8080:80 -v /local/html:/usr/share/nginx/html nginx

容器查看和管理

# 列出正在运行的容器
docker ps
 
# 列出所有容器(包括停止的)
docker ps -a
 
# 查看容器详细信息
docker inspect <容器ID或名>
 
# 查看容器日志
docker logs <容器ID或名>
docker logs -f <容器ID>  # 实时查看日志
docker logs --tail 100 <容器ID>  # 查看最后100行日志
 
# 查看容器资源使用情况
docker stats
docker stats <容器ID或名>

容器操作

# 启动已停止的容器
docker start <容器ID或名>
 
# 停止运行中的容器
docker stop <容器ID或名>
 
# 重启容器
docker restart <容器ID或名>
 
# 暂停容器
docker pause <容器ID或名>
 
# 恢复暂停的容器
docker unpause <容器ID或名>
 
# 删除容器
docker rm <容器ID或名>
 
# 强制删除运行中的容器
docker rm -f <容器ID或名>
 
# 删除所有已停止的容器
docker container prune

容器交互

# 进入运行中的容器
docker exec -it <容器ID或名> /bin/bash
docker exec -it <容器ID或名> /bin/sh
 
# 在容器中执行命令
docker exec <容器ID或名> <>
docker exec my-nginx ls /etc/nginx
 
# 从容器复制文件到主机
docker cp <容器ID>:<容器路> <主机路>
docker cp my-nginx:/etc/nginx/nginx.conf ./nginx.conf
 
# 从主机复制文件到容器
docker cp <主机路> <容器ID>:<容器路>
docker cp ./index.html my-nginx:/usr/share/nginx/html/

网络管理

# 列出网络
docker network ls
 
# 创建网络
docker network create <网络>
docker network create --driver bridge my-network
 
# 查看网络详细信息
docker network inspect <网络>
 
# 连接容器到网络
docker network connect <网络> <容器>
 
# 断开容器与网络的连接
docker network disconnect <网络> <容器>
 
# 删除网络
docker network rm <网络>
 
# 删除未使用的网络
docker network prune

数据卷管理

# 列出数据卷
docker volume ls
 
# 创建数据卷
docker volume create <>
 
# 查看数据卷详细信息
docker volume inspect <>
 
# 删除数据卷
docker volume rm <>
 
# 删除未使用的数据卷
docker volume prune
 
# 使用数据卷运行容器
docker run -v <>:<容器路> <镜像>
docker run -v mydata:/var/data -d nginx

Docker Compose 常用命令

# 启动服务(后台运行)
docker-compose up -d
 
# 启动服务(前台运行)
docker-compose up
 
# 停止服务
docker-compose down
 
# 重启服务
docker-compose restart
 
# 查看服务状态
docker-compose ps
 
# 查看服务日志
docker-compose logs
docker-compose logs -f <服务>
 
# 构建服务
docker-compose build
 
# 拉取服务镜像
docker-compose pull
 
# 执行一次性命令
docker-compose run <服务> <>

系统清理命令

# 删除所有停止的容器
docker container prune
 
# 删除所有未使用的镜像
docker image prune
docker image prune -a  # 包括标签镜像
 
# 删除所有未使用的网络
docker network prune
 
# 删除所有未使用的数据卷
docker volume prune
 
# 删除所有未使用的对象(容器、网络、镜像、构建缓存)
docker system prune
docker system prune -a  # 更彻底的清理
 
# 查看 Docker 磁盘使用情况
docker system df

镜像导入导出

# 将镜像保存为 tar 文件
docker save -o <文件名.tar> <镜像>
docker save -o nginx.tar nginx:latest
 
# 从 tar 文件加载镜像
docker load -i <文件名.tar>
docker load -i nginx.tar
 
# 将容器导出为 tar 文件
docker export -o <文件名.tar> <容器ID或名>
 
# 从 tar 文件导入为镜像
docker import <文件名.tar> <镜像名:标>

实用技巧

常用组合命令

# 停止所有运行中的容器
docker stop $(docker ps -q)
 
# 删除所有容器
docker rm $(docker ps -aq)
 
# 删除所有镜像
docker rmi $(docker images -q)
 
# 进入最新创建的容器
docker exec -it $(docker ps -l -q) /bin/bash

Dockerfile 基础指令

# 指定基础镜像
FROM ubuntu:20.04
 
# 设置维护者信息
LABEL maintainer="your-email@example.com"
 
# 设置工作目录
WORKDIR /app
 
# 复制文件
COPY . /app
 
# 安装软件包
RUN apt-get update && apt-get install -y python3
 
# 设置环境变量
ENV APP_ENV=production
 
# 暴露端口
EXPOSE 8080
 
# 设置启动命令
CMD ["python3", "app.py"]

容器健康检查

# 运行容器时设置健康检查
docker run -d --name web-app \
  --health-cmd="curl -f http://localhost/ || exit 1" \
  --health-interval=30s \
  --health-timeout=3s \
  --health-retries=3 \
  nginx
 
# 查看容器健康状态
docker ps  # STATUS列会显示健康状态

常用镜像启动示例

# Nginx
docker run -d --name nginx-server -p 80:80 nginx
 
# MySQL
docker run -d --name mysql-db -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
 
# Redis
docker run -d --name redis-server -p 6379:6379 redis
 
# PostgreSQL
docker run -d --name postgres-db -p 5432:5432 \
  -e POSTGRES_PASSWORD=123456 postgres
 
# Node.js 应用
docker run -d --name node-app -p 3000:3000 \
  -v $(pwd):/app -w /app node:16 npm start
 
# Python 应用
docker run -d --name python-app -p 5000:5000 \
  -v $(pwd):/app -w /app python:3.9 python app.py

💡 提示

  • 使用 docker --helpdocker <command> --help 查看详细帮助
  • 容器 ID 可以使用前几位字符代替完整 ID
  • 定期清理未使用的镜像和容器以节省磁盘空间
  • 生产环境建议使用具体版本标签而不是 latest