遇到的问题:
使用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