yum报错:[Errno 12] Timeout on repomd.xml: (28, ‘Connection time-out‘)

在使用Dockerfile基于CentOS7构建镜像并用yum安装软件时,遇到无法解析主机和网络超时的问题。尽管服务器DNS配置和网络正常,且在宿主机上能正常执行yum命令,但在Docker容器内却出现网络错误。尝试通过删除Dockerfile中yum安装命令后,直接在容器内执行yum install则恢复正常。最终发现是由于Docker构建过程中的网络设置导致的问题,通过在构建命令中添加`--network=host`参数,使Docker使用宿主机网络,成功解决了该问题。

遇到的问题:

使用docker build编译镜像时,使用的是centos 7,用yum安装软件时

时不时的报下面两种错误:

Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"

yum报错:[Errno 12] Timeout on repomd.xml: (28, 'Connection time-out')

在dockerfile没改的情况下,之前是成功的

尝试解决问题:

1.在baidu和google一通搜索后,要么就是说dns配置有问题,要么就是网络设置问题,事实上服务器上配置一切正常,可以正常使用外网,在服务器宿主机执行yum install 也是正常的,这条路不通

2.把dockerfile里使用yum  install的命令全部删除,只保留from centos:7,编译好镜像后,启动容器,进入容器执行yun install,奇迹般的正常,再恢复dockerfile执行还是出现相同问题

最终解决:

怀疑是build时和宿主机和docker的桥接的关系,可能导致这一现象,我用的是Oracle的云服务器,国内服务器没遇到过,最终通过以下命令执行成功,通过加参数--network确保docker使用与宿主机同一网络来解决。

docker build --network=host . -t test

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值