Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Curl Docker:如何从Docker容器中卷曲主机上运行的本地服务器xyz.example.com_Curl_Docker - Fatal编程技术网

Curl Docker:如何从Docker容器中卷曲主机上运行的本地服务器xyz.example.com

Curl Docker:如何从Docker容器中卷曲主机上运行的本地服务器xyz.example.com,curl,docker,Curl,Docker,在我的主机上,我有一个运行在nginx上的服务器xyz.example.com。它不是固定的,外部世界也无法访问,它只是用于本地开发环境 我希望能够从docker容器中访问它 例如,我希望能够在docker容器中执行以下操作: curl xyz.example.com 并查看在主机上运行命令时看到的相同输出 另外,我正在使用docker compose。它可能没有直接路由到主机的网络。可能有帮助。它可能没有直接路由到主机的网络。可能会有帮助。我想您的容器不知道您的xyz.example.com

在我的主机上,我有一个运行在nginx上的服务器
xyz.example.com
。它不是固定的,外部世界也无法访问,它只是用于本地开发环境

我希望能够从docker容器中访问它

例如,我希望能够在docker容器中执行以下操作:

curl xyz.example.com
并查看在主机上运行命令时看到的相同输出


另外,我正在使用docker compose。

它可能没有直接路由到主机的网络。可能有帮助。

它可能没有直接路由到主机的网络。可能会有帮助。

我想您的容器不知道您的
xyz.example.com
,因为它是在主机的
/etc/host
中声明的(您说它是一个专用服务器)

然后,您可以将主机添加为
extra\u host

services:
  some-service:
    extra_hosts:
      - "xyz.example.com:HOST_BRIDGE_IP"
将在容器的
/etc/host
中添加主机名映射

然后运行您的
docker compose.yml
在docker桥中用其IP替换
主机桥IP

HOST_BRIDGE_IP=$(docker network inspect bridge \
  --format '{{range .IPAM.Config}}{{.Gateway}}{{end}}') \
&& sed -e "s/HOST_BRIDGE_IP/${HOST_BRIDGE_IP}/g" \
docker-compose.yml | docker-compose --file - up
这将允许基于服务器中的DNS进行虚拟主机解析


编辑:这对我来说似乎有点过分了,有人有更好的建议吗?

我猜您的容器不知道您的
xyz.example.com
,因为它是在主机的
/etc/host
中声明的(您说它是一个私有服务器)

然后,您可以将主机添加为
extra\u host

services:
  some-service:
    extra_hosts:
      - "xyz.example.com:HOST_BRIDGE_IP"
将在容器的
/etc/host
中添加主机名映射

然后运行您的
docker compose.yml
在docker桥中用其IP替换
主机桥IP

HOST_BRIDGE_IP=$(docker network inspect bridge \
  --format '{{range .IPAM.Config}}{{.Gateway}}{{end}}') \
&& sed -e "s/HOST_BRIDGE_IP/${HOST_BRIDGE_IP}/g" \
docker-compose.yml | docker-compose --file - up
这将允许基于服务器中的DNS进行虚拟主机解析


编辑:这对我来说似乎有点过分了,有人有更好的建议吗?

您的错误是什么?
curl:(6)无法解析主机
您使用docker compose吗?是的,我使用docker compose。我知道这有点旧,但您解决过这个问题吗?我有完全相同的问题。您遇到的错误是什么?
curl:(6)无法解析主机
您使用docker compose吗?是的,我使用docker compose。我知道这有点旧,但您解决过这个问题吗?我有完全相同的问题。