错误:为仓库 '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 | 插件的限制 |
说明:新版本插件和旧版本插件不兼容,新版本的配置文件名称为 | docker-ce.repo,epel.repo | 您需要满足以下条件,才可以使用该插件:
cat /etc/yum.repos.d/AliYun.repo |grep -A3 alinux3-plus
|
- 在Alibaba Cloud Linux 3系统上执行以下命令,安装插件。目前,插件默认对docker-ce和epel源中的$releasever值做自动转换。
dnf install dnf-plugin-releasever-adapter --repo alinux3-plus
- 若无其他的DNF源需要转换,安装插件后即可直接安装软件;若还有其他的DNF源需要转换,请按照以下方式配置:
- 依次执行以下命令,进入
/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
- 系统显示类似如下。
[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]等源。
- 保存配置文件,即可通过docker-ce、epel和您添加的源安装docker-ce软件,命令如下所示。
说明:您也可以尝试安装其他软件。
dnf install docker-ce