从今晚起无法在 RHEL 7 上安装 Docker CE

从今晚起无法在 RHEL 7 上安装 Docker CE

我正在使用此命令在 RHEL7 上安装 Docker CE,但失败并出现以下错误: 在完美工作了一段时间后,今晚开始了此操作:

sudo yum install -y yum-utils

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

知道发生了什么变化吗?

[pzagalsky@pzagalsky-au-rhel7-pzagalsky ~]$ sudo yum install docker-ce docker-ce-cli containerd.io
Failed to set locale, defaulting to C
https://download.docker.com/linux/centos/7Server/x86_64/nightly/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
Trying other mirror.
To address this issue please refer to the below knowledge base article

https://access.redhat.com/articles/1320623

If above article doesn't help to resolve this issue please open a ticket with Red Hat Support.



 One of the configured repositories failed (Docker CE Nightly - x86_64),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:

     1. Contact the upstream for the repository and get them to fix the problem.

     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most often useful if you are using a newer
        distribution release than is supported by the repository (and the
        packages for the previous distribution release still work).

     3. Run the command with the repository temporarily disabled
            yum --disablerepo=docker-ce-nightly ...

     4. Disable the repository permanently, so yum won't use it by default. Yum
        will then just ignore the repository until you permanently enable it
        again or use --enablerepo for temporary usage:

            yum-config-manager --disable docker-ce-nightly
        or
            subscription-manager repos --disable=docker-ce-nightly

     5. Configure the failing repository to be skipped, if it is unavailable.
        Note that yum will try to contact the repo. when it runs most commands,
        so will have to try and fail each time (and thus. yum will be be much
        slower). If it is a very temporary problem though, this is often a nice
        compromise:

            yum-config-manager --save --setopt=docker-ce-nightly.skip_if_unavailable=true

failure: repodata/repomd.xml from docker-ce-nightly: [Errno 256] No more mirrors to try.
https://download.docker.com/linux/centos/7Server/x86_64/nightly/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found

答案1

所以我们刚刚在安装和卸载时遇到了这个问题(昨天一切正常)。

查看错误代码,您会看到:

https://download.docker.com/linux/centos/7Server/x86_64/nightly/repodata/repomd.xml: 
[Errno 14] HTTPS Error 404 - Not Found

将此网址插入浏览器确实是 404s...在我看来,“/7Server/”位有一个额外的服务器...

虽然我们暂时成功地修改了它,但/etc/yum.repos.d/docker-ce.repo事实证明我们错误地使用了 Centos yum 存储库,而我们实际上需要为我们的操作系统使用特定的存储库 - 在我们的例子中是 OL7。

问题的发布者也很可能使用了错误的 yum 存储库,需要使用 RHEL 存储库。

因此,有效的解决方法是为您的 Linux 发行版选择正确的 yum 存储库,并且通过 yum 安装 docker 应该可以工作。

https://docs.docker.com/engine/install/对于大多数发行版

如果您使用云托管实例,那么您可能在 Linux 实例上预先配置了默认的 yum 存储库,我们的 OL7 实例就是这种情况,我们的 ansible 代码错误地添加了 centos yum 存储库,从而导致了该问题。

感谢 jsbilling 提供有关此问题的信息。

相关内容