0
点赞
收藏
分享

微信扫一扫

关于centos stream9的docker安装'docker-ce-stable' 下载元数据失败

错误:为仓库 'docker-ce-stable' 下载元数据失败 : Yum repo downloading error: Downloading error(s): repodata/d9d3b9a6fa6f64fe756a159bd85fe93179b64ab3829d818ecdbbd969ca7f2df0-primary.xml.gz - Cannot download, all mirrors were already tried without success; repodata/f045252f1f0999c96ce8eef05ce6dbb1ebd58acf631f8b98ef3aee81f2bc4121-filelists.xml.gz - Cannot download, all mirrors were already tried without success

这是我之前设置阿里云存储器导致。

sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

关于这个错误,查看关于/etc/yum.repos.d/docker.repo

[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-test-debuginfo]
name=Docker CE Test - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-test-source]
name=Docker CE Test - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

临时解决办法:编辑​​/etc/yum.repos.d/docker-ce.repo​​文件,找到docker-ce.repo文件中所有存在enabled=1值的源,将源中baseurl的$releasever变量替换为8。但是我换成9是不行,只能换成8


根本解决方案

通过安装dnf-plugin-releasever-adapter插件实现releasever的自动转换,即将3转换为8。dnf-plugin-releasever-adapter插件目前的版本及默认支持的第三方repo如下表所示:

插件版本

默认支持的第三方repo

插件的限制

  • 新版本:1.0-2
  • 旧版本:1.0-1.3

说明:新版本插件和旧版本插件不兼容,新版本的配置文件名称为​​releasever_adapter.conf​​​,旧版本为​​releasever-adapter.conf​​。升级版本会删除原来的配置文件。因此升级后,如果需要支持除docker-ce和epel之外的第三方源,需要重新按照步骤修改配置文件的include字段,其他的保持不变。

docker-ce.repo,epel.repo

您需要满足以下条件,才可以使用该插件:

  • 操作系统需要是Alibaba Cloud Linux 3。
  • 执行以下命令,确认系统中存在alinux3-plus的repo。

cat /etc/yum.repos.d/AliYun.repo |grep -A3 alinux3-plus

  • 系统显示类似如下,说明存在alinux3-plus的repo。
  1. 在Alibaba Cloud Linux 3系统上执行以下命令,安装插件。目前,插件默认对docker-ce和epel源中的$releasever值做自动转换。

dnf install dnf-plugin-releasever-adapter --repo alinux3-plus

  1. 若无其他的DNF源需要转换,安装插件后即可直接安装软件;若还有其他的DNF源需要转换,请按照以下方式配置:
  1. 依次执行以下命令,进入​​/etc/yum/pluginconf.d/​​目录,编辑​​releasever_adapter.conf​​配置文件。如果需要添加其他的DNF源,则需要将DNF源的.repo文件名添加在include字段后面,并以逗号隔开。

说明:DNF源的.repo文件一般在​​/etc/yum.repos.d/​​目录下查看。


cd /etc/yum/pluginconf.d/
vim releasever_adapter.conf

  1. 系统显示类似如下。

[main]
enabled=1
[releasevermapping]
2.1903 = 7
3 = 8
[reposlist]
include=docker-ce.repo, epel.repo

说明

  • 文件中参数的具体介绍如下所示:
    • [main]:此部分为插件的主要控制部分,控制插件的启用与否,其中enabled=1表示启用插件,enabled=0表示停用插件。
    • [releasevermapping]:此部分为待处理的releasever的映射关系,其中2.1903映射为7,3映射为8。
    • [repolist]:此部分为需要修改的源的列表,如果需要添加其他的源,则需要将.repo文件的名字添加在include字段后面,并以逗号隔开。
  • 一般来说,一个.repo文件中有多个可以使用的源,每个源都有一个独立的名称区分其他的源,一个系统中不能出现重复的名称,例如:docker-ce.repo中有[docker-ce-stable]和[docker-ce-stable-debuginfo]等源。
  1. 保存配置文件,即可通过docker-ce、epel和您添加的源安装docker-ce软件,命令如下所示。

说明:您也可以尝试安装其他软件。


dnf install docker-ce


举报

相关推荐

0 条评论