如何在构建docker镜像时访问父主机服务?

时间:2018-05-16 18:23:44

标签: docker npm

在构建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参数!

谢谢,

1 个答案:

答案 0 :(得分:0)

由于某些未知原因,centosOS防火墙仅在建设时阻止连接,而不是在运行时阻止连接。

解决方案是在防火墙上添加一个例外,问题就解决了。