docker容器调用yum报错的解决办法
dockerfile里或者在容器里执行yum,报错,找不到源(invalidbaseurlxxx),但是宿主机上执行yum是没问题的啊,为什么?
因为不论是dockerfile使用RUN关键字执行yum还是直接进入到容器里面执行yum,它们都是使用的docker镜像里面的源(CentOS是在路径/etc/yum.repo.d/CentOS-Base.repo),所以你要把宿主机上的同路径下的源拷贝到容器里面,然后dockercommit一个新的“基础镜像”,这个时候使用dockerbuildxxx(即使用Dockerfile的方式)就不会报错了。
拷贝方法dockercpxxxxxx
内容扩展
dockerfile中执行yum操作报错
我们先看下报错信息:
SendingbuildcontexttoDockerdaemon9.363MB
Step1:FROMdocker.io/centos
--->196e0ce0c9fb
Step2:MAINTAINERliuliangliang
--->Usingcache
--->7d7e06799c20
Step3:ADDfile/tomcat7.tgz/usr/local/
--->Usingcache
--->10ffdea53a02
Step4:RUNyuminstalljava-1.8.0-openjdk-y
--->Runningin7824a339e077
Loadedplugins:fastestmirror,ovl
Oneoftheconfiguredrepositoriesfailed(Unknown),
andyumdoesn'thaveenoughcacheddatatocontinue.Atthispointtheonly
safethingyumcandoisfail.Thereareafewwaystowork"fix"this:1.Contacttheupstreamfortherepositoryandgetthemtofixtheproblem.
2.Reconfigurethebaseurl/etc.fortherepository,topointtoaworking
upstream.Thisismostoftenusefulifyouareusinganewer
distributionreleasethanissupportedbytherepository(andthe
packagesforthepreviousdistributionreleasestillwork).3.Runthecommandwiththerepositorytemporarilydisabled
yum--disablerepo=... 4.Disabletherepositorypermanently,soyumwon'tuseitbydefault.Yum
willthenjustignoretherepositoryuntilyoupermanentlyenableit
againoruse--enablerepofortemporaryusage:yum-config-manager--disable
or
subscription-managerrepos--disable=5.Configurethefailingrepositorytobeskipped,ifitisunavailable.
Notethatyumwilltrytocontacttherepo.whenitrunsmostcommands,
sowillhavetotryandfaileachtime(andthus.yumwillbebemuch
slower).Ifitisaverytemporaryproblemthough,thisisoftenanice
compromise:yum-config-manager--save--setopt=
.skip_if_unavailable=true Cannotfindavalidbaseurlforrepo:base/7/x86_64
Couldnotretrievemirrorlisthttp://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=containererrorwas
14:curl#6-"Couldnotresolvehost:mirrorlist.centos.org;Unknownerror"
Thecommand'/bin/sh-cyuminstalljava-1.8.0-openjdk-y'returnedanon-zerocode:1
解决方法:
这个你在resolv.conf文件里加上DNS服务就行了这个文件在/etc下,加上
nameserver8.8.8.8
nameserver8.8.4.4
searchlocaldomain
就行了
到此这篇关于docker容器调用yum报错的解决办法的文章就介绍到这了,更多相关docker容器调用yum报错如何解决内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!