Docker 使用手册
一、Docker 基础概念
| 术语 | 说明 |
|---|---|
| 镜像(Image) | 只读的应用模板,包含运行应用所需的代码、依赖、配置 |
| 容器(Container) | 镜像的运行实例,每个容器相互隔离,拥有独立的文件系统和网络 |
| Dockerfile | 定义镜像构建规则的文本文件,可自动化构建自定义镜像 |
| 仓库(Registry) | 存储镜像的服务,官方公共仓库为 Docker Hub,国内常用镜像源为加速仓库 |
二、Windows Docker Desktop 安装与配置
1. 安装前提
- Windows 10 2004+ / Windows 11 专业版 / 企业版 / 教育版
- 开启 WSL2(安装 Docker 时会自动提示配置)
- 管理员权限运行 PowerShell
2. 镜像源配置(已配置完成,附验证方法)
# 验证镜像源是否生效 docker info | Select-String "Registry Mirrors" -A 10配置文件路径:Docker Desktop → Settings → Docker Engine,JSON 配置如下:
{ "registry-mirrors": [ "https://docker.xuanyuan.me", "https://docker.1ms.run", "https://docker.m.daocloud.io", "https://docker.mirrors.ustc.edu.cn", "http://hub-mirror.c.163.com" ], "insecure-registries": [], "debug": false, "experimental": false }配置完成后点击Apply & Restart重启 Docker。
三、核心命令速查(按使用场景分类)
1. 镜像管理命令
# 1. 拉取镜像(格式:docker pull 镜像名:标签) docker pull redis:latest # 拉取最新版 Redis docker pull nginx:1.25 # 拉取指定版本 Nginx # 2. 查看本地镜像列表 docker images # 3. 删除本地镜像(先删除依赖该镜像的容器) docker rmi redis:latest # 删除指定镜像 docker image prune -a # 删除所有未使用的镜像(谨慎使用) # 4. 构建自定义镜像(基于 Dockerfile) docker build -t my-app:v1 . # 构建镜像,标签为 my-app:v12. 容器管理命令
# 1. 启动容器(后台运行,端口映射示例) docker run -d --name redis -p 6379:6379 redis:latest # 参数说明: # -d:后台运行容器 # --name:指定容器名称(必须唯一) # -p 宿主机端口:容器端口:端口映射,外部通过宿主机端口访问容器服务 # 2. 查看容器状态 docker ps # 查看运行中的容器 docker ps -a # 查看所有容器(包括已停止的) # 3. 停止/重启/删除容器 docker stop redis # 停止指定容器 docker restart redis # 重启容器 docker rm redis # 删除已停止的容器 docker rm -f redis # 强制删除运行中的容器 # 4. 进入容器内部(调试用) docker exec -it redis bash # 进入 Redis 容器(Linux 镜像) docker exec -it redis redis-cli # 直接进入 Redis 客户端3. 日志与调试命令
# 查看容器日志 docker logs redis # 查看所有日志 docker logs -f redis # 实时跟踪日志输出 # 查看容器资源占用 docker stats redis # 查看 CPU/内存/网络占用 # 查看容器详细信息 docker inspect redis4. 数据持久化(关键,容器删除数据不丢失)
# 1. 挂载宿主机目录到容器(绑定挂载) docker run -d --name redis -p 6379:6379 -v D:\redis-data:/data redis:latest redis-server --appendonly yes # 说明:-v 宿主机路径:容器路径,宿主机路径需提前创建 # 2. 使用 Docker 数据卷(推荐,无需管理宿主机路径) docker volume create redis-data # 创建数据卷 docker run -d --name redis -p 6379:6379 -v redis-data:/data redis:latest redis-server --appendonly yes docker volume ls # 查看数据卷列表 docker volume rm redis-data # 删除数据卷(数据会被清除,谨慎使用)5. 网络管理命令
# 查看 Docker 网络列表 docker network ls # 创建自定义网络(容器间通信更安全) docker network create my-network # 启动容器并加入自定义网络 docker run -d --name redis --network my-network redis:latest四、实战:Redis 容器完整部署(含持久化)
1. 启动带持久化的 Redis 容器
docker run -d ` --name redis ` -p 6379:6379 ` -v redis-data:/data ` redis:latest ` redis-server --appendonly yes --requirepass "yourpassword"--appendonly yes:开启 AOF 持久化,数据写入文件--requirepass "yourpassword":设置 Redis 访问密码(建议生产环境使用)
2. 验证 Redis 连接
# 宿主机测试连接(需安装 Redis 客户端) redis-cli -h localhost -p 6379 ping # 无密码时返回 PONG redis-cli -h localhost -p 6379 -a yourpassword ping # 带密码连接五、常见问题排查
1. 拉取镜像超时 / 失败
- 检查镜像源配置是否生效(
docker info查看 Registry Mirrors) - 切换镜像源顺序,优先使用
https://docker.xuanyuan.me - 重启 Docker 服务(托盘图标 → Restart)
2. 容器端口无法访问
- 检查端口是否被占用:
netstat -ano | findstr 6379 - 确认防火墙未拦截 Docker 端口
- 检查容器是否正常运行:
docker ps
3. 容器重启后数据丢失
- 未配置数据持久化,需添加
-v参数挂载宿主机目录或数据卷 - 容器被删除重建,数据卷未被删除(
docker volume ls查看)
六、进阶:Dockerfile 自定义镜像示例
1. 基础 Redis 自定义镜像(带配置文件)
创建Dockerfile文件:
FROM redis:latest COPY redis.conf /usr/local/etc/redis/redis.conf CMD ["redis-server", "/usr/local/etc/redis/redis.conf"]构建并启动镜像:
docker build -t my-redis:v1 . docker run -d --name my-redis -p 6379:6379 my-redis:v1七、常用命令清单(可直接复制使用)
# 查看 Docker 版本 docker --version # 启动/停止 Docker Desktop(PowerShell 管理员) Start-Process "C:\Program Files\Docker\Docker\Docker Desktop.exe" Stop-Process -Name "Docker Desktop" -Force # 一键清理所有未使用的镜像、容器、数据卷 docker system prune -a --volumes