我正在使用此命令在 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 提供有关此问题的信息。