docker build时无法yum安装包,因为无法访问外网,无法ping通外网。
解决办法宿主机执行:
systemctl stop NetworkManager.service
firewall-cmd --permanent --zone=trusted --change-interface=docker0
systemctl start NetworkManager.service#yum clean all && yum makecache
#删除不必要的报错yum源
systemctl restart docker.service
在Dockerfile中增加调试命令:
COPY ./Centos-7.repo /etc/yum.repos.d/CentOS-Base.repo
#fastestmirror.conf修改成enabled=0
COPY ./fastestmirror.conf /etc/yum/pluginconf.d/fastestmirror.conf
#yum.conf修改成plugins=0
COPY ./yum.conf /etc/yum.confRUN ls /etc/yum.repos.d/
RUN ping -c 3 ping mirrors.aliyun.com
COPY ./hosts /etc/hosts
RUN cat /etc/hosts
RUN cat /etc/resolv.conf
在执行docker build时指定使用主机网络:
docker build --network=host --progress=plain --no-cache -t mynginx:v1.0 .
docker save mynginx:v1.0 -o mynginx_v1.0.tar
另一种方式:build时不用yum,全量下载rpm包
通过yum将依赖的rpm包都下载到指定目录(系统已有的依赖不下载):
yum reinstall mypackagename --downloadonly --downloaddir=./yum-downloaddir/
通过yum将依赖的rpm包都下载到指定目录(下载全部依赖):
#下载
yum -y install yum-util