RHEL8/Fedora - yum/dnf 导致无法为 docker-ce 下载 repodata/repomd.xml

问题描述 投票:0回答:6

问题

如何修复 docker-ce 的

Cannot download repodata/repomd.xml: All mirrors were tried

问题

按照当前(截至 2021 年 12 月 13 日)Docker 文档设置 Docker yum/dnf 存储库,获取错误

Cannot download repodata/repomd.xml: All mirrors were tried
yum install docker-ce

步骤与错误

$ sudo dnf -y install dnf-plugins-core
Last metadata expiration check: 0:43:20 ago on Wed 15 Dec 2021 03:47:53 AM UTC.
Package dnf-plugins-core-4.0.21-3.el8.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!

$ sudo dnf config-manager \
>     --add-repo \
>     https://download.docker.com/linux/fedora/docker-ce.repo
Adding repo from: https://download.docker.com/linux/fedora/docker-ce.repo

$ sudo yum update
Docker CE Stable - x86_64                                                                                                                                                                                             357  B/s | 383  B     00:01    
Errors during downloading metadata for repository 'docker-ce-stable':
  - Status code: 404 for https://download.docker.com/linux/fedora/8/x86_64/stable/repodata/repomd.xml (IP: 13.224.175.42)
Error: Failed to download metadata for repo 'docker-ce-stable': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried

环境

与 8.4 和 8.5 一起转载。然而,其他 Fedora/RHEL/CentOS 也会有同样的问题。

$ cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="8.5 (Ootpa)"
linux docker yum dnf
6个回答
55
投票

原因

Docker 文档中指定的命令生成不正确的存储库配置。

根据对 dockerproject.org APT 和 YUM 存储库的更改,docker 的存储库现已移至

download.docker.com
。该文档链接到 Docker 文档,例如 Install Docker Engine on Fedora

我需要做什么?

如果您当前正在使用 dockerproject.org 或 dockerproject.com 中的 APT 或 YUM 存储库,请更新以使用 download.docker.com 上的存储库。

您可以在文档中找到 CentOS、Debian、Fedora 和 Ubuntu 的说明。

您按照指示操作:

$ sudo dnf config-manager \
    --add-repo \
    https://download.docker.com/linux/fedora/docker-ce.repo

该命令创建

/etc/yum.repos.d/docker-ce.repo
,其 URL 错误。

[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/fedora/$releasever/$basearch/stable # <--- Wrong URL
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/fedora/gpg

正如无法在 rhel 8 linux 上安装 docker 中所解释的,它应该是:

[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/$releasever/$basearch/stable # <--- Correct URL
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

不确定谁应该解决这个问题。请告知谁负责。

解决方案

对于 RHEL/Fedora 使用以下命令,而不是 Docker 文档中指定的命令。

sudo dnf config-manager \
--add-repo=https://download.docker.com/linux/centos/docker-ce.repo

如果已经创建了不正确的配置。

sed -i -e 's/baseurl=https:\/\/download\.docker\.com\/linux\/\(fedora\|rhel\)\/$releasever/baseurl\=https:\/\/download.docker.com\/linux\/centos\/$releasever/g' /etc/yum.repos.d/docker-ce.repo

注意

我们目前仅提供 s390x (IBM Z) 上的 RHEL 软件包。 RHEL 尚不支持其他架构,但您也许可以在 RHEL 上安装 CentOS 软件包。有关详细信息,请参阅在 CentOS 上安装 Docker 引擎页面。

Red Hat 不为 Red Hat Enterprise Linux (RHEL) 8 和 (RHEL) 9 提供或支持 docker 软件包。docker 容器引擎已被容器工具模块中的一套工具取代。

当您需要提高安全性、使用命名空间进行唯一标识符 (UID) 分离以及与 systemd 集成时,Podman 是 Docker 容器的绝佳替代品。在本文中,我将使用真实的示例向您展示如何安装 Podman、使用其基本命令以及从 Docker 命令行界面 (CLI) 过渡到 Podman。


4
投票

RHEL 86x_64x 不支持 docker

我看到了一个解决方案,可以编辑 /etc/yum.repos.d/docker-ce****.repo 中的 .repo 文件并将 [docker-ce-stable] 基本 URL 编辑为

https://download.docker.com/linux/centos/$releasever/$basearch/stable

centos 将与 Docker 一起使用。


1
投票

简化@mon解决方案

编辑此文件

/etc/yum.repos.d/docker-ce.repo

If you're using fedora: 
   then compare the example below with your file (make sure 
   you have the word fedora in the baseurl and the gpgkey)

If you're using a different distro (like centos):
   then everywhere that you see the word fedora replace it 
   with the word centos.

示例:

[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/fedora/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/fedora/gpg

[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://download.docker.com/linux/fedora/$releasever/debug-$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/fedora/gpg

[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://download.docker.com/linux/fedora/$releasever/source/stable
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/fedora/gpg

[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://download.docker.com/linux/fedora/$releasever/$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/fedora/gpg

[docker-ce-test-debuginfo]
name=Docker CE Test - Debuginfo $basearch
baseurl=https://download.docker.com/linux/fedora/$releasever/debug-$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/fedora/gpg

[docker-ce-test-source]
name=Docker CE Test - Sources
baseurl=https://download.docker.com/linux/fedora/$releasever/source/test
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/fedora/gpg

[docker-ce-nightly]
name=Docker CE Nightly - $basearch
baseurl=https://download.docker.com/linux/fedora/$releasever/$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/fedora/gpg

[docker-ce-nightly-debuginfo]
name=Docker CE Nightly - Debuginfo $basearch
baseurl=https://download.docker.com/linux/fedora/$releasever/debug-$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/fedora/gpg

[docker-ce-nightly-source]
name=Docker CE Nightly - Sources
baseurl=https://download.docker.com/linux/fedora/$releasever/source/nightly
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/fedora/gpg

0
投票

尝试这个过程。有用。来自 Ec2 的 docker 存储库存在 DNS 问题。

  1. sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

  2. sudo chmod +x /usr/local/bin/docker-compose

  3. docker-compose --version


0
投票

文档中添加了新注释。

我们目前仅提供 s390x (IBM Z) 上的 RHEL 软件包。其他 RHEL 尚不支持架构,但您也许可以 在 RHEL 上安装 CentOS 软件包。参考安装Docker 有关详细信息,请参阅 CentOS 页面上的引擎。

目前看来,RHEL 尚未提供 s390x (IBM Z) 以外架构的软件包。但是,您可以通过在 RHEL 上安装 CentOS 软件包来找到替代解决方案。您可以参考在 CentOS 上安装 Docker 引擎页面,了解如何继续安装的详细说明。


-1
投票

Docker 在 Rhel 中无法工作,我们可以尝试使用像 centos 一样的工具。 https://docs.docker.com/engine/install/centos/

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


sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

完成后执行 sudo service docker start

然后检查docker版本

© www.soinside.com 2019 - 2024. All rights reserved.