[英]Docker: How to curl local server xyz.example.com running on host machine from within a docker container
在主机上,我在nginx上运行服务器xyz.example.com
。 它没有经过泊坞窗化,外界也无法访问,仅用于本地开发环境。
我希望能够从Docker容器中访问它。
例如,我希望能够在Docker容器中执行以下操作:
curl xyz.example.com
并在主机上运行命令时看到相同的输出。
另外,我正在使用docker-compose。
我猜您的容器不知道您的xyz.example.com
因为它是在主机的/etc/host
(您说它是私有服务器)?
然后,您可以将主机添加为extra_host
:
services:
some-service:
extra_hosts:
- "xyz.example.com:HOST_BRIDGE_IP"
extra_host
将在容器的/etc/host
添加主机名映射。
并在docker-compose.yml
HOST_BRIDGE_IP
使用ip来运行docker-compose.yml
替换HOST_BRIDGE_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的虚拟主机解析。
编辑:这对我来说似乎有点矫kill过正,有人有更好的建议吗?
它可能没有直接路由到主机的网络。 这个问题可能会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.