【问题标题】:Docker yum install issue - Cannot retrieve metalink for repository: epel/x86_64Docker yum 安装问题 - 无法检索存储库的金属链接:epel/x86_64
【发布时间】:2016-07-24 12:24:38
【问题描述】:

在 Centos 7 中从 docker 文件执行 yum install 时收到以下错误消息

docker build -f DockerFile .

Sending build context to Docker daemon 1.252 MB
Step 1 : FROM centos:7
 ---> 778a53015523
Step 2 : RUN rpm -iUvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm # For python-pip
 ---> Using cache
 ---> 324c446a8ded
Step 3 : RUN rpm --import http://repo.saltstack.com/yum/redhat/7/x86_64/latest/SALTSTACK-GPG-KEY.pub
 ---> Using cache
 ---> bdab0cf0e83d
Step 4 : RUN yum install -y python-pip
 ---> Running in 092314f6bd8f
Loaded plugins: fastestmirror, ovl


 One of the configured repositories failed (Unknown),
 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. Disable the repository, 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 <repoid>

     4. 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=<repoid>.skip_if_unavailable=true

Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again
The command '/bin/sh -c yum install -y python-pip' returned a non-zero code: 1

我们的服务器位于代理服务器之后。所以代理条目被添加到文件中 /etc/sysconfig/docker

 HTTP_PROXY=< PROXY_IP >:80/
 HTTPS_PROXY=< PROXY_IP >:80/

还添加了Env文件 docker.service

[Service]
    EnvironmentFile=-/etc/sysconfig/docker

任何帮助将不胜感激。

【问题讨论】:

标签: docker


【解决方案1】:

我遇到了类似的问题,当我尝试点击 fedora URL 时:

$ curl mirrors.fedoraproject.org

无法解析主机:mirrors.fedoraproject.org;未知错误

我的临时解决方案(虽然 fedoraproject.org 可能存在一些问题)是禁用镜像,并使用另一个主机:

$ sed -i -e "s/^metalink/#metalink/g" \
-e "s/download.fedoraproject.org/pub/mirror.bytemark.co.uk/fedora/g" \
/etc/yum.repos.d/epel.repo

【讨论】:

    【解决方案2】:

    安装 epel-release 后,您可能会遇到此消息/错误。 快速修复是更新您的 SSL 证书:

    yum -y upgrade ca-certificates
    

    证书更新时也可能出现上述错误,如果是这样,请禁用 epel repo,即使用以下命令:

    yum -y upgrade ca-certificates --disablerepo=epel  
    

    一旦证书更新完毕,你就可以正常使用yum了,即使是epel repo也可以正常使用。


    注意:如果您不是root 用户,请使用sudo

    【讨论】:

    • yum -y upgrade ca-certificates --disablerepo=epel 效果很好,谢谢!
    • 是的,您必须运行第二个命令,第一个命令会产生与 OP 提到的金属链接相同的错误
    猜你喜欢
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 2018-06-27
    • 2014-09-30
    • 1970-01-01
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多