在构建docker镜像时,我想访问父主机上托管的服务。例如,假设我需要访问在主机npm
上运行的xpto:8080
私有存储库。在xpto上我也在构建一个在Dockerfile上调用的新图像
RUN npm set registry http://xpto:8080
RUN npm install
当我尝试docker build -t=my_image .
时,我总是得到
失败,原因:连接EHOSTUNREACH 192.168.2.103:4873
还尝试了RUN wget xpto:8080
并获得了
失败:无主机路线。
尝试使用--add-host参数,但没有锻炼。
奇怪的是,当我尝试从另一个容器访问父主机服务时,它运行正常,但必须添加--net =“host”参数,如下所示:
docker run --it --rm --net="host" my-test-image sh
wget xpto:8080
问题是docker build不支持这个--net参数!
谢谢,
答案 0 :(得分:0)
由于某些未知原因,centosOS防火墙仅在建设时阻止连接,而不是在运行时阻止连接。
解决方案是在防火墙上添加一个例外,问题就解决了。