从容器内访问主机的api
我正在尝试使用docker构buildenv,并且我想使其自动完成。 我已经写了一个自定义去二进制文件来处理构build的东西,我已经build立了一个图像,它已经安装the go binary
, maven
和java8 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