2. 环境准备:Docker Desktop 与 Docker Engine 的安装与版本验证,配置国内镜像加速器

在开始数据库缓存回归冒烟测试之前,必须搭建标准化的容器运行时环境。本章将指导你完成 Docker Desktop(适用于 macOS/Windows)与 Docker Engine(适用于 Linux)的安装、版本验证,并配置国内镜像加速器以提升镜像拉取速度。

2.1 运行时选择:Docker Desktop vs Docker Engine

根据宿主操作系统选择对应的 Docker 运行时。下表列出了两者的核心差异与适用场景:

特性 Docker Desktop Docker Engine
目标平台 macOS、Windows Linux(Ubuntu/CentOS/Debian 等)
安装方式 图形化安装包(.dmg / .exe) 包管理器(apt / yum)或脚本
内置组件 Docker Engine + Docker Compose + Kubernetes 仅 Docker Engine(Compose 需单独安装)
虚拟化层 HyperKit / WSL2 虚拟机 直接使用 Linux 内核命名空间
资源占用 较高(含虚拟机开销) 较低(原生内核级)
推荐场景 开发环境、跨平台团队 生产服务器、CI/CD 节点
课程建议: 本课程后续的 Docker Compose 编排与缓存服务部署,在 Docker Desktop 和 Docker Engine 上行为完全一致。如果你使用 macOS/Windows,请安装 Docker Desktop;如果使用 Linux,请安装 Docker Engine + Docker Compose Plugin。

2.2 安装步骤与版本验证

2.2.1 Docker Desktop(macOS / Windows)

  1. 访问 Docker Desktop 官方下载页,选择对应操作系统的稳定版安装包。
  2. 双击安装包,按向导完成安装。macOS 用户需允许系统扩展;Windows 用户需启用 WSL2 或 Hyper-V。
  3. 启动 Docker Desktop,等待右下角鲸鱼图标变为稳定状态(绿色指示灯)。
  4. 打开终端,执行版本验证命令:
# 验证 Docker Engine 版本
docker version --format '{{.Server.Version}}'

# 验证 Docker Compose 版本
docker compose version

# 验证 Docker Desktop 版本(仅 Desktop 可用)
docker --version

2.2.2 Docker Engine(Linux)

  1. 卸载旧版本(如有):
sudo apt-get remove docker docker-engine docker.io containerd runc
  1. 安装依赖并添加 Docker 官方 GPG 密钥与仓库(以 Ubuntu 为例):
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. 安装 Docker Engine 与 Compose 插件:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. 启动 Docker 并设置开机自启:
sudo systemctl enable docker
sudo systemctl start docker
  1. 将当前用户加入 docker 组(避免每次使用 sudo):
sudo usermod -aG docker $USER
newgrp docker
  1. 验证安装:
docker version --format '{{.Server.Version}}'
docker compose version
版本要求: 本课程所有编排与缓存服务验证基于 Docker Engine ≥ 24.0 与 Docker Compose ≥ 2.20。请确保你的版本不低于上述要求。若版本过低,请参考官方文档升级。

2.3 配置国内镜像加速器

由于 Docker Hub 服务器位于海外,直接拉取镜像可能速度缓慢或超时。配置国内镜像加速器可以显著提升拉取效率。以下为常用加速器地址:

服务商 加速器地址 备注
阿里云(个人版) https://<your_code>.mirror.aliyuncs.com 需登录阿里云容器镜像服务获取专属地址
腾讯云 https://mirror.ccs.tencentyun.com 公有云用户可用
华为云 https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com 公有云用户可用
中科大(USTC) https://docker.mirrors.ustc.edu.cn 教育网推荐,无需注册
网易 http://hub-mirror.c.163.com 无需注册

2.3.1 Docker Desktop 配置加速器

  1. 打开 Docker Desktop,点击右上角设置齿轮图标。
  2. 导航到 Docker Engine 选项卡。
  3. 在 JSON 配置中添加 registry-mirrors 字段:
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com"
  ]
}
  1. 点击 Apply & Restart 使配置生效。

2.3.2 Docker Engine(Linux)配置加速器

  1. 创建或编辑 Docker 守护进程配置文件:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<- 'EOF'
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com"
  ]
}
EOF
  1. 重新加载配置并重启 Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
  1. 验证加速器是否生效:
docker info | grep -A 5 "Registry Mirrors"

预期输出应显示你配置的镜像加速器地址列表。

加速效果验证: 配置完成后,执行 docker pull nginx:alpine 测试拉取速度。若下载速度明显提升(通常从几分钟缩短至几十秒),则说明加速器配置成功。

2.4 环境验证流程图

以下 SVG 图展示了从安装到验证的完整流程,帮助你快速定位环境准备中的关键步骤:

Docker 环境准备与验证流程 开始环境准备 判断操作系统类型 安装 Docker Desktop 安装 Docker Engine 版本验证(≥24.0) 配置国内镜像加速器 环境就绪

2.5 常见问题与排查

问题现象 可能原因 解决方案
docker: command not found Docker 未安装或 PATH 未包含 重新安装;Linux 用户需 newgrp docker 或重启终端
Cannot connect to the Docker daemon Docker 服务未运行 Linux: sudo systemctl start docker;Desktop: 重启应用
permission denied 当前用户不在 docker 组 sudo usermod -aG docker $USER 后重新登录
镜像拉取超时 未配置加速器或加速器不可用 检查 /etc/docker/daemon.json 配置;更换加速器地址
Docker Desktop 启动失败 WSL2 / Hyper-V 未启用 Windows: 启用 WSL2 或 Hyper-V 功能;macOS: 检查虚拟化支持
快速验证脚本: 执行以下命令可一次性检查 Docker 版本、Compose 版本和加速器状态:
echo "Docker: $(docker version --format '{{.Server.Version}}') | Compose: $(docker compose version --short) | Mirrors: $(docker info 2>/dev/null | grep -oP 'https?://[^"]+' | head -3 | tr '\n' ' ')"