3. 基础软件安装:Docker 与 Docker Compose
服务目录平台依赖容器化技术实现环境一致性与快速部署。本章将完成 Docker 引擎、Docker Compose 的安装配置,并设置镜像加速器以提升国内网络环境下的拉取效率。
3.1 安装环境概览
本次安装基于 Ubuntu 22.04 LTS 操作系统,采用官方仓库方式安装 Docker Engine。以下为安装前需确认的环境条件:
| 检查项 | 要求 | 验证命令 |
|---|---|---|
| 操作系统版本 | Ubuntu 20.04 / 22.04 / Debian 11+ | cat /etc/os-release |
| 内核版本 | ≥ 3.10(推荐 5.x) | uname -r |
| CPU 架构 | x86_64 / arm64 | uname -m |
| 网络连通性 | 可访问外网或镜像仓库 | ping registry.cn-hangzhou.aliyuncs.com |
| sudo 权限 | 当前用户具有 sudo 执行权限 | sudo -v |
提示: 若使用 CentOS 或 Rocky Linux,请将包管理器替换为
yum / dnf,并调整仓库源路径。本课程以 Ubuntu 为例,其他发行版操作步骤类似。
3.2 Docker 引擎安装步骤
采用官方推荐方式,分四步完成 Docker 引擎的安装:
- 卸载旧版本(如有)
- 安装依赖包:ca-certificates、curl、gnupg、lsb-release
- 添加 Docker 官方 GPG 密钥与仓库
- 安装 Docker Engine、containerd、Docker CLI
# 步骤 1:卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
# 步骤 2:安装依赖
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release
# 步骤 3:添加 Docker 官方 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 步骤 4:设置稳定版仓库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 步骤 5:安装 Docker 引擎
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
关键说明: 安装完成后,Docker 守护进程默认已启动。使用
sudo systemctl status docker 可查看运行状态。若需将当前用户加入 docker 用户组以避免每次使用 sudo,请执行 sudo usermod -aG docker $USER 并重新登录。
3.3 配置镜像加速器
在国内网络环境下,直接拉取 Docker Hub 镜像速度较慢。推荐配置阿里云或腾讯云镜像加速器。以下以阿里云为例,每个用户拥有独立的加速器地址。
# 创建或修改 Docker 守护进程配置文件
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<- 'EOF'
{
"registry-mirrors": ["https://<your-mirror-id>.mirror.aliyuncs.com"]
}
EOF
# 重新加载配置并重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
注意: 请将
<your-mirror-id> 替换为你在阿里云容器镜像服务中获取的专属加速器 ID。若使用腾讯云,镜像地址格式为 https://mirror.ccs.tencentyun.com。配置完成后务必重启 Docker 守护进程。
以下 SVG 图展示了 Docker 客户端通过镜像加速器拉取镜像的完整流程:
3.4 Docker Compose 安装
Docker Compose 用于定义和运行多容器应用。自 Docker Engine 23.0+ 起,Compose V2 已作为插件集成在 docker-compose-plugin 包中。若你已按 3.2 节安装 docker-compose-plugin,则无需额外操作。
若需独立安装 Compose V2 二进制文件,可执行以下命令:
# 下载最新稳定版 Docker Compose
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
# 赋予执行权限
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
# 验证安装
docker compose version
版本建议: 推荐使用 Compose V2(命令为
docker compose,无连字符)。V1 已停止维护。若系统中同时存在 V1 和 V2,请确保 docker compose 指向 V2 版本。
3.5 验证安装
完成上述步骤后,通过以下命令验证所有组件是否正常工作:
| 验证项 | 命令 | 预期输出 |
|---|---|---|
| Docker 引擎版本 | docker version --format '{{.Server.Version}}' |
≥ 24.0 |
| Docker 运行状态 | sudo systemctl is-active docker |
active |
| 镜像加速器生效 | docker info | grep -A 1 "Registry Mirrors" |
显示配置的加速器地址 |
| Compose 版本 | docker compose version |
Docker Compose version v2.27.0 |
| 容器运行测试 | docker run hello-world |
打印 Hello from Docker! 信息 |
# 一键验证脚本
echo "=== Docker 版本 ===" && docker version --format '{{.Server.Version}}'
echo "=== Docker 运行状态 ===" && sudo systemctl is-active docker
echo "=== 镜像加速器 ===" && docker info | grep -A 1 "Registry Mirrors"
echo "=== Compose 版本 ===" && docker compose version
echo "=== 运行测试容器 ===" && docker run --rm hello-world
验证结果: 若所有检查项均通过,说明 Docker 与 Docker Compose 已正确安装并配置镜像加速器。服务目录平台后续的容器化部署将基于此环境运行。
以下 SVG 图展示了 Docker 安装验证的完整流程与各组件关系:
3.6 常见问题与排查
- 权限拒绝: 若执行
docker ps提示 "permission denied",请将用户加入 docker 组或使用 sudo 执行。 - 镜像拉取超时: 检查
/etc/docker/daemon.json中镜像加速器地址是否正确,并确认网络可访问该地址。 - Compose 命令未找到: 确认
docker-compose-plugin已安装,或二进制文件路径在$PATH中。 - 内核兼容性: 旧内核可能导致容器运行异常,建议升级至 5.x 内核。
安全提醒: 生产环境中请勿将 Docker 守护进程暴露在公网,并定期更新 Docker 版本以修复安全漏洞。配置 TLS 认证后再开启远程 API 访问。