我经常使用centos 7作为基本图像构建docker容器。但是现在我跑步时遇到了错误,
RUN yum update add \
bash \
&& rm -rfv /var/cache/apk/*
ERROR:
Loaded plugins: fastestmirror, ovl
其中一个已配置的存储库失败(未知), 并且yum没有足够的缓存数据来继续。此时唯一 百胜可以做的安全事情就是失败。有几种方法可以解决"修复"这样:
联系上游的存储库并让他们解决问题。
重新配置baseurl / etc.对于存储库,指向工作 上游。如果您使用的是更新版本,这通常很有用 分发版本比存储库支持(和 以前的发行版的软件包仍然可用。)
运行暂时禁用存储库的命令
yum --disablerepo=<repoid> ...
永久禁用存储库,因此默认情况下yum不会使用它。百胜
然后,只有在您永久启用它之前,才会忽略该存储库
再次使用--enablerepo
进行临时使用:
yum-config-manager --disable <repoid>
或
`subscription-manager repos --disable=<repoid>`
配置要跳过的故障存储库(如果不可用)。 请注意,yum将尝试联系回购。当它运行大多数命令时, 因此每次都必须尝试失败(因此,yum会很多 慢点)。如果这是一个非常短暂的问题,这通常很好 折衷:
yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true
无法为repo找到有效的baseurl:base / 7 / x86_64无法检索 镜像列表 http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=container 错误是14:卷曲#6 - &#34;无法解析主机:mirrorlist.centos.org; 姓名或服务未知&#34;命令&#39; / bin / sh -c yum update添加
bash&amp;&amp; rm -rfv / var / cache / apk / *&#39;返回非零代码:1
我也看到了几个使用的决议&#34; dhclient&#34;但是当我做docker-compose build时会发生这个错误。
答案 0 :(得分:0)
我的假设是,由于某种原因,docker中的网络行为因分布而异。
尝试使用:
docker run -d --net mybridge centos
或
docker network create -d bridge mybridge
docker run -d --net mybridge centos
应该开始工作了。或者只需编辑/etc/hosts
并添加镜像地址
Name: mirrorlist.centos.org
Address: 67.219.148.138
答案 1 :(得分:0)
我遇到了这个问题,试图在两个不同的平台上运行相同的Dockerfile
,并使用yum
来获取多个软件包。一个macOS,另一个基于Ubuntu 16.04的Linux OS(elementaryOS Loki),都使用docker.com上的官方软件包。
我的理论是,从安全角度而言,Linux软件包比macOS软件包更具限制性。也许可以使用某种 编辑:请参见下面的评论。< / p>
/etc/something
配置文件来配置,但是我不确定Docker的专业知识。
我可以说的是,在macOS(10.11 El Capitan)上我不需要其他配置;只是docker build .
工作正常,并且yum
的{{1}}进程能够访问所有远程存储库。
但是,在源自Ubuntu的Linux发行版中,有必要使用
Dockerfile
之后
docker build --network host .
当我想在该图像中运行需要访问互联网的进程时。
其他Debian衍生系统也可能是这种情况。
在允许长时间运行的Docker容器不受限制地通过主机网络适配器进行通信时,当然需要考虑安全性,并且最好回顾一下the appropriate documentation,注意。
答案 2 :(得分:0)
此问题的根本原因是,容器代理设置错误。只需更正以下位置的代理设置即可。
/root/.docker/config.json