RHEL 7 安装 Docker 过程总结

基于执行的历史命令,以下是完整的 RHEL 7 系统安装 Docker 的过程总结。这个过程通过更换为 CentOS 7 的 YUM 源 ,巧妙地解决了 RHEL 7 的 $releasever 变量与阿里云 Docker 镜像路径不匹配的核心问题。

📋 安装步骤与命令解析

第 1 步:解决基础源问题

bash 复制代码
# 211 - 将阿里云的 CentOS 7 仓库配置下载为系统的基础源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

# 212 - 安装 yum-utils 工具包(包含 yum-config-manager 等)
sudo yum install -y yum-utils

# 213 - 挂载本地光盘(备用,但此安装未实际使用)
mount /dev/cdrom /mnt

关键点 :第 211 行命令是解决后续问题的核心前提 。通过将系统基础源替换为 CentOS 7 的阿里云镜像,确保了 $releasever 变量被识别为 7 而非 7Server

第 2 步:添加 Docker 仓库

bash 复制代码
# 214 - 添加阿里云 Docker CE 仓库(使用 centos 路径)
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

路径说明 :此命令添加的是 .../linux/centos/docker-ce.repo 而非 .../linux/rhel/docker-ce.repo,这与第一步的 CentOS 源保持一致。

第 3 步:尝试安装与问题排查

bash 复制代码
# 215 - 第一次安装尝试(预期会因 $releasever 问题失败)
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 216 - 针对性修复 Docker 仓库文件中的变量
sudo sed -i 's/\$releasever/7/g' /etc/yum.repos.d/docker-ce.repo

# 217 - 第二次安装尝试
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

此时可能仍存在其他仓库文件(如 docker-ce-stable.repo)包含 $releasever 变量。

第 4 步:全面修复与成功安装

bash 复制代码
# 218 - 清理 YUM 缓存
yum clean all

# 219 - 第三次安装尝试
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 220 - 查看当前目录文件
ll

# 221 - 批量修复所有 docker 相关的仓库文件
sudo sed -i 's/\$releasever/7/g' /etc/yum.repos.d/docker*.repo

# 222 - 第四次安装尝试
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 223 - 最彻底的修复:替换所有仓库文件中的 $releasever
sudo sed -i 's/\$releasever/7/g' /etc/yum.repos.d/*.repo

# 224 - 最终成功的安装
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

第 5 步:验证安装

bash 复制代码
# 225 - 查看 Docker 版本确认安装成功
docker --version

# 226 - 查看历史命令
history

第 6 步:配置国内镜像源

bash 复制代码
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://0b27f0a81a00f3560fbdc00ddd2f99e0.mirror.swr.myhuaweicloud.com",
    "https://ypzju6vq.mirror.aliyuncs.com",
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
  ]
}
EOF


# 重启服务
systemctl daemon-reload
systemctl restart docker

🎯 关键技术要点

1. 问题本质

  • RHEL 7 的 $releasever 变量值为 7Server
  • 阿里云镜像库的路径结构期望 77Server 特定值
  • 两者不匹配导致 404 错误

2. 解决方案演变

  1. 初步尝试 :单独修改 docker-ce.repo 文件(第216行)
  2. 扩展修复 :批量修改 docker*.repo 文件(第221行)
  3. 彻底解决 :修改所有 *.repo 文件(第223行)

3. 最优实践命令

bash 复制代码
# 完整安装流程(已验证有效)
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sudo yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's/\$releasever/7/g' /etc/yum.repos.d/*.repo
sudo yum clean all
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

⚡ 经验总结

  1. 源一致性是关键:使用 CentOS 7 源配套 CentOS 路径的 Docker 仓库,保持一致性
  2. 变量替换要彻底 :不仅仅是 Docker 仓库,所有仓库文件中的 $releasever 都可能需要替换
  3. 清理缓存很重要 :在修改仓库配置后执行 yum clean all 可避免缓存干扰
  4. 批量替换效率高sudo sed -i 's/\$releasever/7/g' /etc/yum.repos.d/*.repo 是最可靠的修复方式

这种方法避免了复杂的仓库配置调整,通过统一系统的 $releasever 识别方式,从根本上解决了 RHEL 7 使用阿里云 Docker 镜像的兼容性问题。

相关推荐
不能只会打代码1 小时前
校享云 — 高校智慧后勤平台微服务架构设计与实践
spring cloud·docker·微服务·nacos·vue·校享云
Splashtop高性能远程控制软件1 小时前
本地部署 vs 公有云 vs 混合架构:一份可对照落地的 IT 架构选型指南
运维·架构·远程控制·splashtop
kdxiaojie1 小时前
Linux 驱动研究 —— V4L2 (2)
linux·运维·笔记·学习
蝶恋舞者2 小时前
怎样设置软件开机自启动(用的最多,最简单)
linux·运维·服务器
段一凡-华北理工大学3 小时前
AI Agent 从入门到封神:24 讲打造你的超级智能体~系列文章23:从Demo到上线:Agent应用的架构设计、性能优化与成本控制实战
运维·网络·人工智能·性能优化·高炉炼铁·工业智能体
L1624763 小时前
Zabbix 7.0 LTS 完整部署与运维手册(AlmaLinux 9 + MySQL 8.0 + Nginx)
运维·mysql·zabbix
happymade3 小时前
MSRM3 区域层级嵌套功能深度解析与实操教程
运维·网络拓扑·网络管理·网络运维·msrm3
前端Baymax3 小时前
kube-proxy iptables模式下NodePort间歇性超时
docker·容器·kubernetes
一只积极向上的小咸鱼3 小时前
多机Docker + InfiniBand 分布式运行实操手册
分布式·docker·容器
java_logo3 小时前
Docker 部署 WPS 在线办公套件,浏览器即可编辑 Word、Excel、PPT
docker·word·wps·wps部署教程·wps免费版·轩辕镜像·docker部署教程