从容器内访问主机的api

我正在尝试使用docker构buildenv,并且我想使其自动完成。 我已经写了一个自定义去二进制文件来处理构build的东西,我已经build立了一个图像,它已经安装the go binarymavenjava8 sdk

二进制的步骤是:

  • 克隆一个git回购
  • 运行构build命令
  • 将构build工件提取到主机。 (尚未完成)

我正在运行容器时,将repo url作为parameter passing给二进制文件,并构build它。

但问题是我需要这些工件,以运行build设的应用程序。

我知道我可以使用volumes ,但我不想使用它们,因为当构build已经完成卷成为dangle ,它需要一个工作,删除这些dangling volumes

我以为我可以创build一个API保存文件到主机(这意味着我必须在主机内运行该API),我的自定义去二进制文件可以发送文件到API和API将执行保存。

但是当涉及从容器内部调用主机时,我遇到了问题。 我得到connection refused to port xx错误。

有没有更好的方法去做,还是应该改变我的方法?

find一个答案访问主机作为本地主机从docker集装箱这也是在里面

使用--add-host选项运行容器是答案。

虽然你可以使用

 docker cp CONTAINER:SRC_PATH DEST_PATH 

为了从你的容器中获取文件,我仍然相信使用音量是更好的主意。 而不是使用匿名卷使用一个名字:

 docker run -v /local/host/dir:/build/output YOURIMAGE 

这使您可以从/ local / host /目录中find主机上的文物

https://docs.docker.com/engine/tutorials/dockervolumes/#locate-a-volume