4. Docker 与容器化环境搭建:Docker CE 安装、配置镜像加速器、Docker Compose 安装、基础镜像拉取与验证

容器化是批次追溯数据在材料申请流程中实现环境一致性与快速交付的核心技术。本章将指导你完成 Docker CE 的安装、镜像加速器配置、Docker Compose 的部署,以及基础镜像的拉取与验证,为后续微服务组件的容器化部署奠定基础。

4.1 Docker CE 安装

Docker Community Edition (CE) 是免费且广泛使用的容器运行时。以下步骤基于 CentOS 7/8 或 RHEL 兼容系统,生产环境建议使用稳定版本。

步骤 命令 / 操作 说明
1 sudo yum install -y yum-utils 安装 yum 工具集
2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 添加 Docker 官方仓库
3 sudo yum install -y docker-ce docker-ce-cli containerd.io 安装 Docker CE 引擎及 CLI
4 sudo systemctl start docker 启动 Docker 服务
5 sudo systemctl enable docker 设置开机自启
验证安装:执行 docker --version 应返回类似 Docker version 24.0.7, build afdd53b 的信息。执行 sudo docker run hello-world 可快速验证引擎是否正常工作。

4.2 配置镜像加速器

国内访问 Docker Hub 可能因网络原因速度较慢,配置镜像加速器可显著提升拉取效率。推荐使用阿里云、腾讯云或中科大等可信加速器。

# 创建或修改 Docker 守护进程配置文件
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://your-mirror.aliyuncs.com",
    "https://docker.mirrors.ustc.edu.cn"
  ],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}
EOF

# 重新加载配置并重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
注意:请将 your-mirror.aliyuncs.com 替换为你在阿里云容器镜像服务中获取的专属加速地址。配置完成后,执行 docker info 查看 Registry Mirrors 字段是否包含已配置的地址。

4.3 Docker Compose 安装

Docker Compose 用于定义和运行多容器 Docker 应用。在批次追溯系统中,我们将使用 Compose 编排 MySQL、Redis、后端 API 及前端服务。

# 下载最新稳定版 Docker Compose(v2 版本)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 创建软链接(可选)
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# 验证安装
docker-compose --version
版本说明:Docker Compose v2 已集成到 Docker CLI 中,可通过 docker compose(无横杠)直接使用。本课程同时兼容 v1 和 v2 语法,建议使用 v2 以获得更好的性能与功能支持。

4.4 基础镜像拉取与验证

在搭建批次追溯环境前,需预先拉取关键基础镜像。以下镜像将用于后续章节的容器化部署。

镜像名称 标签 用途 拉取命令
MySQL 8.0 批次追溯数据持久化存储 docker pull mysql:8.0
Redis 7.2 缓存与消息队列 docker pull redis:7.2
OpenJDK 17-jdk-slim Java 微服务运行环境 docker pull openjdk:17-jdk-slim
Nginx 1.25 反向代理与静态资源服务 docker pull nginx:1.25
验证方法:拉取完成后,执行 docker images 查看本地镜像列表。使用 docker run --rm mysql:8.0 mysql --version 可快速验证 MySQL 镜像是否可用。

4.5 容器化环境架构总览

下图展示了本章搭建的容器化环境在批次追溯系统中所处的位置与核心组件关系。

容器化环境架构总览 物理 / 虚拟机主机 Docker Engine (CE 24.x) Docker Compose (v2.24) 镜像加速器 (Mirror) 基础镜像 (MySQL/Redis/Java/Nginx) 批次追溯应用容器组 材料申请 API | 批次数据服务 | 前端 Nginx | 消息队列 镜像加速器提升拉取速度

4.6 环境验证清单

完成上述步骤后,建议按以下清单逐项确认环境就绪,避免后续部署时出现基础环境问题。

  • Docker 服务状态:systemctl status docker 显示 active (running)
  • 镜像加速器生效:docker info | grep -A 1 "Registry Mirrors" 输出已配置的加速地址
  • Docker Compose 可用:docker-compose --version 返回版本号,无报错
  • 基础镜像完整性:docker images 列出 mysql:8.0、redis:7.2、openjdk:17-jdk-slim、nginx:1.25
  • 容器运行测试:docker run --rm hello-world 输出 Hello from Docker! 信息
最佳实践:建议将上述验证步骤写入自动化脚本(如 validate-docker-env.sh),在每次环境初始化或 CI/CD 流程中自动执行,确保环境一致性。