解决 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 源适配失败。

二、问题根源分析

  1. RHEL 系统订阅限制:RHEL 需注册红帽订阅才能使用官方源,未注册时无法获取依赖包,导致 YUM 功能异常。
  2. CentOS 7 EOL 影响:CentOS 7 已停止官方支持(EOL),多数公共镜像源(如 163 源)已下架相关仓库,直接使用旧源会触发 404。
  3. 系统兼容性问题:RHEL 与 CentOS 虽同源兼容,但默认缺少 CentOS/GPG 密钥,且源配置中的版本变量($releasever)需手动适配。
  4. Docker 依赖链缺失:Docker 安装需 fuse-overlayfscontainer-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

五、总结与注意事项

  1. 系统兼容性:RHEL 7.x 与 CentOS 7 归档源完全兼容,无需修改内核,可放心使用。
  2. 安全提醒:RHEL 7.5 和 CentOS 7 均已停止官方更新,存在安全风险,建议长期使用时迁移到 RHEL 8/9 或 CentOS Stream 系列。
  3. 源选择建议:优先使用阿里云、华为云等国内归档源,速度优于官方海外源。
  4. 依赖包处理:Docker 安装的核心依赖需从 EPEL 源获取,务必确保 EPEL 源配置正确。

若有转载,请标明出处:https://blog.csdn.net/CharlesYuangc/article/details/155017355

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

君九@DBA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值