Docker 访问主机&x27;从容器内部调用api

Docker 访问主机&x27;从容器内部调用api,docker,docker-networking,Docker,Docker Networking,我正在尝试使用docker生成一个build env,我想让它自动生成。我已经编写了一个自定义go二进制文件来处理构建内容,并且我已经构建了一个映像,其中安装了go二进制文件、maven和Java8SDK binary执行的步骤包括: 克隆git回购协议 运行构建命令 将构建工件提取到主机。(这还没有完成。) 在运行容器时,我将repo url作为参数传递给二进制文件,它会生成 但问题是我需要这些工件来运行内置的应用程序 我知道我可以使用卷,但我不想使用它们,因为在构建完成后,卷将变成挂起,

我正在尝试使用docker生成一个build env,我想让它自动生成。我已经编写了一个自定义go二进制文件来处理构建内容,并且我已经构建了一个映像,其中安装了
go二进制文件
maven
Java8SDK

binary执行的步骤包括:

  • 克隆git回购协议
  • 运行构建命令
  • 将构建工件提取到主机。(这还没有完成。)
在运行容器时,我将repo url作为参数传递给二进制文件,它会生成

但问题是我需要这些工件来运行内置的应用程序

我知道我可以使用
,但我不想使用它们,因为在构建完成后,卷将变成
挂起
,它需要一个作业来删除那些
挂起的卷

我想我可以创建一个api来将文件保存到主机(这意味着我必须在主机内运行该api),我的自定义go二进制文件可以将文件发送到api,api将完成保存

但当涉及到从容器内部调用主机时,我遇到了一个问题。我收到连接被拒绝到xx端口的
错误

有没有更好的方法,或者我应该改变我的方法

当你可以使用

docker cp CONTAINER:SRC_PATH DEST_PATH
要从容器中取出文件,我仍然认为使用卷是更好的主意。不要使用匿名卷,而是使用命名卷:

docker run -v /local/host/dir:/build/output YOURIMAGE
这允许您从/local/host/dir获取主机上的人工制品

当您可以使用

docker cp CONTAINER:SRC_PATH DEST_PATH
要从容器中取出文件,我仍然认为使用卷是更好的主意。不要使用匿名卷,而是使用命名卷:

docker run -v /local/host/dir:/build/output YOURIMAGE
这允许您从/local/host/dir获取主机上的人工制品

在上找到了答案

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

在上找到答案


使用
--addhost
选项运行容器就是答案。

如果我有机会通过api实现这一点,我想使用它。我知道我可以使用它,但它不是自动的方式。如果我有机会通过api实现这一点,我想使用它。我知道我可以用这个,但这不是自动的方式。你怎么“打电话给主持人”?另外,如果您发布用于启动容器的命令行也会有所帮助。命令行只是执行我的二进制文件,就是这样,你怎么“调用主机”?另外,如果您发布用于启动容器的命令行也会有所帮助。命令行只是执行我的二进制文件而已