Jon*_*han 3 yum docker centos7 docker-compose
我经常使用 centos 7 作为基础映像构建 docker 容器。但是现在我运行时出错,
RUN yum update add \
bash \
&& rm -rfv /var/cache/apk/*
ERROR:
Loaded plugins: fastestmirror, ovl
Run Code Online (Sandbox Code Playgroud)
配置的存储库之一失败(未知),并且 yum 没有足够的缓存数据来继续。在这一点上,yum 唯一可以做的安全事情就是失败。有几种方法可以“修复”这个问题:
联系存储库的上游并让他们解决问题。
重新配置 baseurl/etc。对于存储库,指向一个工作上游。如果您使用的分发版本比存储库支持的版本更新(并且先前分发版本的包仍然有效),这通常很有用。
在暂时禁用存储库的情况下运行命令
yum --disablerepo=<repoid> ...
永久禁用存储库,因此 yum 默认不会使用它。然后 Yum 将忽略存储库,直到您再次永久启用它或--enablerepo用于临时使用:
yum-config-manager --disable <repoid>
Run Code Online (Sandbox Code Playgroud)
或者
`subscription-manager repos --disable=<repoid>`
Run Code Online (Sandbox Code Playgroud)如果失败的存储库不可用,则将其配置为跳过。请注意,yum 将尝试联系 repo。当它运行大多数命令时,因此每次都必须尝试并失败(因此 yum 会慢得多)。如果这是一个非常暂时的问题,这通常是一个很好的折衷方案:
yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true
Run Code Online (Sandbox Code Playgroud)找不到用于 repo 的有效 baseurl:base/7/x86_64 无法检索镜像列表 http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=container 错误为 14:curl#6 -“无法解析主机: mirrorlist.centos.org; 名称或服务未知” 命令 '/bin/sh -c yum update add
bash && rm -rfv /var/cache/apk/*' 返回非零代码:1
我还看到很少有使用“dhclient”的解决方案,但是当我执行 docker-compose 构建时会发生此错误。
我在尝试运行相同的 时遇到了这个问题Dockerfile,它使用yum, 在两个不同的平台上获取了几个软件包;一个 macOS,另一个基于 Ubuntu 16.04 的 Linux 操作系统(elementaryOS Loki),两者都使用来自 docker.com 的官方软件包。
我的理论是,Linux 软件包在安全方面比 macOS 软件包更具限制性。也许这可以使用某种 编辑:见我下面的评论。/etc/something配置文件进行配置,但我没有 Docker 的专业知识可以肯定地说。
我可以说的是,我在 macOS (10.11 El Capitan) 上不需要额外的配置;刚刚docker build .工作的罚款,并yum从工艺Dockerfile能够达到所有远程存储库。
然而,在 Ubuntu 衍生的 Linux 发行版中,有必要使用
docker build --network host .
Run Code Online (Sandbox Code Playgroud)
其次是
docker run -it --network host <image> <command>
Run Code Online (Sandbox Code Playgroud)
当我想在需要访问互联网的图像中运行一个进程时。
其他 Debian 派生系统也可能是这种情况。
当然,在允许长时间运行的 Docker 容器通过主机网络适配器进行通信时需要考虑安全因素,不受限制,最好查看这方面的适当文档。
| 归档时间: |
|
| 查看次数: |
8162 次 |
| 最近记录: |