Linux VM-12-6-opencloudo服务器上安装docker
摘要:在OpenCloudOS 9系统安装Docker时遇到"Failed to download metadata"错误,主要由于系统版本号不匹配或网络问题导致。解决方案包括:1)手动修改docker-ce.repo文件,将$releasever变量替换为固定版本号9;2)使用国内镜像源(如华为云)替代官方仓库。通过清理缓存、修改配置后重新安装可解决问题。安装完成后需启动do
最近在Linux VM-12-6-opencloudo服务器上安装docker遇到镜像问题,尤其是在基于 RHEL/CentOS 的发行版(如 OpenCloudOS)上使用 Docker 官方仓库时。
这个错误 Failed to download metadata for repo 'docker-ce-stable': Cannot download repomd.xml 通常是由以下两个主要原因之一导致的:
- 系统版本号不匹配 (最常见原因):Docker 官方仓库脚本中的
$releasever变量解析出来的系统版本号(例如9.4)在 Docker 的下载路径中不存在对应的目录,导致返回 404 错误。 - 网络问题/DNS 阻断:您的服务器无法正常访问
download.docker.com,尤其是在某些区域或使用了特定防火墙/代理的情况下。【由于是腾讯云的服务器,我的解决方案是这个,修改了镜像源的地址,可直接跳备用方案进行问题修复】
针对 OpenCloudOS 9(您的系统版本为 opencloudos 6.6.98-38.oc9.x86_64),最有效的解决办法是 手动修改 Docker 仓库配置文件,将版本号固定为主要的发行版数字 9。
解决方案:修改 Docker 仓库配置
请执行以下步骤来修复这个问题:
步骤 1:编辑 Docker 仓库配置文件
使用 vim 或 nano 打开 Docker 的仓库配置文件:
sudo vim /etc/yum.repos.d/docker-ce.repo
# 或者使用 nano
# sudo nano /etc/yum.repos.d/docker-ce.repo
步骤 2:修改 BaseURL
在打开的文件中,找到所有以 baseurl= 开头的行(通常有三行,对应稳定版、测试版和边缘版),将其中的 $releasever 变量替换为主要的版本号 9。
原始配置(可能出错):
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/$releasever/$basearch/stable
enabled=1
# ...
修改后的配置(将 $releasever 替换为 9):
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/9/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
# 其他配置(例如 test 和 nightly)也做同样修改
[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://download.docker.com/linux/centos/9/$basearch/test
enabled=0
# ...
保存并关闭文件。
步骤 3:清理缓存并重新安装
清理 DNF/YUM 缓存,然后重新尝试安装 Docker:
# 清理缓存
sudo dnf clean all
# 重新安装 Docker Engine
sudo dnf install -y docker-ce docker-ce-cli containerd.io
如果问题是由于版本号不匹配引起的,此时应该可以正常下载元数据并完成安装。
备用方案:使用国内镜像站 (推荐)
如果上述方法仍然出现网络错误,或者下载速度很慢,强烈建议使用国内的云服务商提供的 Docker CE 镜像站。
步骤 1:移除官方仓库配置
为避免冲突,先移除掉之前的 Docker 官方仓库配置:
sudo rm -f /etc/yum.repos.d/docker-ce.repo
步骤 2:添加国内镜像仓库(以华为云为例)
许多国内云服务商提供了 Docker CE 的镜像仓库。您可以选择其中一个进行配置。
使用华为云镜像仓库:
# 添加仓库(注意,这里将官方地址替换为国内镜像)
sudo dnf config-manager --add-repo=https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
# 替换 baseurl 中的官方地址为华为云镜像地址
sudo sed -i 's+download.docker.com+repo.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# 强制将 $releasever 替换为 OpenCloudOS 9 对应的版本 9
sudo sed -i 's+\$releasever+9+' /etc/yum.repos.d/docker-ce.repo
步骤 3:安装 Docker
sudo dnf install -y docker-ce docker-ce-cli containerd.io
步骤 4:启动并验证服务
安装完成后,按照之前的步骤启动并验证服务:
sudo systemctl start docker
sudo systemctl enable docker
[root@VM-12-6-opencloudos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@VM-12-6-opencloudos ~]#
更多推荐


所有评论(0)