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


            