一份简单、清晰、实用的 Docker 命令速查手册,无需翻文档,复制即用!

前言

Docker 是现代开发中不可或缺的工具。但命令太多容易记混?别担心!这份笔记帮你把常用命令分类整理,每条都带解释、示例和注意事项,让你用起来得心应手

一、镜像管理(Images)

镜像是容器的“模板”,比如 nginx、redis、ubuntu

命令说明
docker images查看本地所有镜像
docker pull <镜像名>:<标签>从仓库下载镜像(如 docker pull nginx:latest)
docker build -t <名称:标签> .用当前目录的 Dockerfile 构建镜像
docker rmi <镜像ID或名称>删除一个镜像
docker rmi $(docker images -q)删除所有未使用的镜像(慎用!)
docker image prune清理悬空镜像(build 失败残留)
docker image ls同 docker images,列出镜像

示例:构建并查看镜像

# 构建一个名为 myapp:v1 的镜像
docker build -t myapp:v1 .

# 查看是否构建成功
docker images

⚠️ 注意:

  • . 表示当前目录有 Dockerfile
  • 如果提示权限错误,请检查 Docker 是否运行

二、容器管理(Containers)

容器是镜像的“运行实例”,你可以启动、停止、删除它

命令说明
docker run [选项] <镜像名>创建并启动一个容器
docker start <容器ID或名称>启动已停止的容器
docker stop <容器ID或名称>停止正在运行的容器(优雅关闭)
docker restart <容器ID或名称>重启容器
docker rm <容器ID或名称>删除已停止的容器
docker rm -f <容器ID>强制删除正在运行的容器
docker ps查看正在运行的容器
docker ps -a查看所有容器(包括已停止的)
docker logs <容器ID>查看容器输出日志
docker exec -it <容器ID> /bin/bash进入容器内部执行命令(常用)
docker rename <旧名> <新名>重命名容器

示例:运行一个 Nginx 容器

# 启动 Nginx,映射 80 端口,后台运行,命名为 web
docker run -d -p 80:80 --name web nginx:latest

# 查看是否运行
docker ps

# 进入容器(适用于 Ubuntu/CentOS 类镜像)
docker exec -it web /bin/bash

# 停止并删除
docker stop web
docker rm web

⚠️ 参数说明:

  • -d:后台运行(detached)
  • -p 80:80:将主机 80 端口映射到容器 80
  • --name web:给容器起个名字,方便管理
  • -it:交互式终端(i = interactive, t = tty)

三、数据卷与挂载(Volumes & Mounts)

避免容器删除后数据丢失,使用数据卷或目录挂载

命令说明
docker volume create <卷名>创建一个数据卷
docker volume ls查看所有数据卷
docker volume rm <卷名>删除数据卷
docker volume prune删除所有未使用的卷

挂载方式(在 run 中使用)

# 方式1:挂载主机目录(推荐开发环境)
docker run -d -v /host/path:/container/path nginx

# 方式2:使用命名卷(推荐生产环境)
docker run -d -v mydata:/data nginx

# 方式3:只读挂载
docker run -d -v /host/config:/etc/config:ro nginx

💡 小技巧:

  • Windows 用户路径写法:C:\data → /c/data(在 WSL 或 Docker Desktop 中)
  • 推荐将项目放在 WSL 文件系统中(如 ~/project),避免性能问题

四、网络管理(Networks)

容器之间通信靠网络。默认有 bridge、host、none 三种模式

命令说明
docker network ls查看所有网络
docker network create <网络名>创建自定义网络
docker network connect <网络> <容器>将容器加入网络
docker network disconnect <网络> <容器>将容器移出网络
docker network rm <网络名>删除网络

示例:创建自定义网络让容器互通

# 创建网络
docker network create mynet

# 启动两个容器并加入同一网络
docker run -d --name db --network mynet redis
docker run -d --name app --network mynet myapp:v1

# 此时 app 容器可以直接用 `db` 作为主机名访问 Redis

✅ 优势:容器可通过名称通信,无需记住 IP

五、Docker Compose(推荐使用!)

用 docker-compose.yml 文件一键管理多个服务

常用命令

命令说明
docker-compose up启动所有服务(前台运行)
docker-compose up -d后台启动所有服务
docker-compose down停止并删除所有服务
docker-compose ps查看服务状态
docker-compose logs查看所有服务日志
docker-compose build重新构建服务镜像

示例:docker-compose.yml 文件

version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
  db:
    image: redis:alpine
    volumes:
      - dbdata:/data

volumes:
  dbdata:
# 启动
docker-compose up -d

# 查看
docker-compose ps

# 停止
docker-compose down

✅ 推荐:复杂项目一定要用 docker-compose,省时省力!

六、清理与维护

定期清理可以释放磁盘空间

命令说明
docker system df查看 Docker 磁盘使用情况
docker system prune清理所有未使用的资源(容器、网络、镜像、构建缓存)
docker system prune -a清理所有未使用的镜像(包括未被引用的)
docker builder prune清理构建缓存

⚠️ 警告:prune -a 会删除所有未使用的镜像,确认后再执行!

七、实用技巧 & 常见问题

1. 如何查看容器 IP

docker inspect <容器ID> | grep "IPAddress"

2. 如何复制文件到容器

docker cp /host/file.txt container_id:/container/path/

3. 如何查看容器资源占用

docker stats

4. 构建时如何跳过缓存

docker build --no-cache -t myapp:v1 .

5. Windows 用户注意

  • 推荐使用 WSL 2 + Ubuntu 进行开发
  • 项目文件放在 WSL 内(如 /home/user/project),不要放 /mnt/c/ 下,否则性能差
  • Docker Desktop 设置中开启 WSL 集成

总结:一张表掌握核心命令

类别常用命令
镜像images, pull, build, rmi
容器run, ps, start/stop, exec, logs
数据volume create, -v 挂载
网络network create, --network
编排docker-compose up/down
清理system prune, volume prune
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐