解决 RHEL 7.5 安装 Docker 报错:依赖包缺失与 YUM 源失效问题
解决 RHEL 7.5 安装 Docker 报错:依赖包缺失与 YUM 源失效问题
在 RHEL 7.5 系统中安装 Docker 时,常会遇到一系列棘手问题:YUM 源 404 报错、依赖包校验失败、CentOS 源与 RHEL 系统不兼容等。本文结合实际操作场景,详细拆解问题根源,提供一套完整的解决方案,帮助大家快速搞定 Docker 安装。
前置说明
当前使用操作系统版本:RHEL 7.5
[root@mysqldb01 ~]# cat /etc/os-release
NAME="Red Hat Enterprise Linux Server"
VERSION="7.5 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.5"
PRETTY_NAME="Red Hat Enterprise Linux Server 7.5 (Maipo)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:7.5:GA:server"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7"
REDHAT_BUGZILLA_PRODUCT_VERSION=7.5
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="7.5"
[root@mysqldb01 ~]#
一、问题背景与核心报错
1. 操作初衷
在 RHEL 7.5 服务器上通过 YUM 安装 Docker CE,执行常规安装步骤:
安装完整步骤参考《入门篇:零基础 | 一入 Docker 深似海》
# 下载阿里云 Docker 源
wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 修改系统版本适配
sed -i 's/$releasever/7/g' docker-ce.repo
# 安装 Docker 核心组件
yum -y install docker-ce docker-ce-cli containerd.io
2. 关键报错
- 第一阶段:
docker-compose-plugin包校验失败(Package does not match intended download),镜像源元数据不一致。 - 第二阶段:清理缓存后出现 YUM 源 404,提示
CentOS-7 - Base - 163.com仓库无法访问。 - 第三阶段:排查发现系统为 RHEL 7.5(非 CentOS 7),默认订阅源未注册,第三方 CentOS 源适配失败。
二、问题根源分析
- RHEL 系统订阅限制:RHEL 需注册红帽订阅才能使用官方源,未注册时无法获取依赖包,导致 YUM 功能异常。
- CentOS 7 EOL 影响:CentOS 7 已停止官方支持(EOL),多数公共镜像源(如 163 源)已下架相关仓库,直接使用旧源会触发 404。
- 系统兼容性问题:RHEL 与 CentOS 虽同源兼容,但默认缺少 CentOS/GPG 密钥,且源配置中的版本变量(
$releasever)需手动适配。 - Docker 依赖链缺失:Docker 安装需
fuse-overlayfs、container-selinux等依赖包,这些包需从 EPEL 源获取,默认 RHEL 源未包含。
三、完整解决方案
核心思路
替换 RHEL 默认订阅源为 CentOS 7 归档源(兼容 RHEL 7.5),补充 EPEL 源提供额外依赖,重新配置 Docker 源并适配系统版本,最终完成安装。
步骤 1:备份原有 YUM 源配置
避免误删配置文件,先备份当前所有 repo 文件:
# 创建备份目录
mkdir -p /etc/yum.repos.d/backup
# 移动原有 repo 文件到备份目录
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
步骤 2:配置 CentOS 7 归档源(兼容 RHEL 7.5)
选择阿里云归档源(速度快、稳定性高),适配 RHEL 7.5 系统:
# 下载 CentOS 7 Base 源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 下载 EPEL 7 源(提供额外依赖)
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
# 替换版本变量为 7(适配 RHEL 7 系列)
sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
sed -i 's/$releasever/7/g' /etc/yum.repos.d/epel.repo
# 禁用 GPG 校验(RHEL 无 CentOS 密钥,避免校验失败)
sed -i 's/gpgcheck=1/gpgcheck=0/g' /etc/yum.repos.d/CentOS-Base.repo
sed -i 's/gpgcheck=1/gpgcheck=0/g' /etc/yum.repos.d/epel.repo
步骤 3:重新配置 Docker 源
下载适配 CentOS 7 的 Docker 源,修改版本变量以兼容 RHEL 7.5:
# 下载阿里云 Docker CE 源
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 替换版本变量为 7(适配 RHEL 7)
sed -i 's/$releasever/7/g' /etc/yum.repos.d/docker-ce.repo
# 禁用 GPG 校验(避免密钥不匹配问题)
sed -i 's/gpgcheck=1/gpgcheck=0/g' /etc/yum.repos.d/docker-ce.repo
步骤 4:清理缓存并重建元数据
# 清理所有旧缓存
yum clean all
# 重建 YUM 缓存(拉取新源元数据)
yum makecache
步骤 5:安装 Docker 核心组件
此时 YUM 源已完全适配,执行安装命令:
# 安装 Docker 核心组件
yum -y install docker-ce docker-ce-cli containerd.io
# (可选)安装缺失依赖(若上述命令报错)
yum -y install fuse-overlayfs slirp4netns container-selinux libfuse3.so.3
重塑上述步骤至此未遇到报错,安装成功。

步骤 6:启动 Docker 并验证
# 启动 Docker 服务
systemctl start docker
# 设置开机自启
systemctl enable docker
# 查看 Docker 状态(显示 active (running) 即为成功)
systemctl status docker
# 验证 Docker 版本
docker --version

四、常见问题补充
1. 仍提示 docker-compose-plugin 包报错?
跳过该插件安装,后续通过官方脚本手动补充:
# 只安装 Docker 核心组件
yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-ce-rootless-extras
# 手动安装 docker-compose-plugin
curl -SL https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# 验证
docker compose version
2. YUM 源仍无法访问?
替换为 CentOS 官方归档源(vault.centos.org),修改 CentOS-Base.repo:
# 将阿里云镜像地址替换为官方归档源
sed -i 's/mirrors.aliyun.com/vault.centos.org/g' /etc/yum.repos.d/CentOS-Base.repo
# 重建缓存
yum makecache
3. 安装后 Docker 启动失败?
检查 SELinux 状态,若未关闭可能导致权限问题:
# 临时关闭 SELinux(测试用)
setenforce 0
# 永久关闭 SELinux(编辑配置文件)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 重启服务器后生效
reboot
五、总结与注意事项
- 系统兼容性:RHEL 7.x 与 CentOS 7 归档源完全兼容,无需修改内核,可放心使用。
- 安全提醒:RHEL 7.5 和 CentOS 7 均已停止官方更新,存在安全风险,建议长期使用时迁移到 RHEL 8/9 或 CentOS Stream 系列。
- 源选择建议:优先使用阿里云、华为云等国内归档源,速度优于官方海外源。
- 依赖包处理:Docker 安装的核心依赖需从 EPEL 源获取,务必确保 EPEL 源配置正确。
若有转载,请标明出处:https://blog.csdn.net/CharlesYuangc/article/details/155017355

9366

被折叠的 条评论
为什么被折叠?



