我有一台运行 Docker 和一些容器的服务器。主机有一个公共 IP 和一个监听其中一个容器 80 端口的服务。
如果我尝试使用主机的公共 IP 来获取服务,它可以正常工作,但如果我尝试使用另一个容器中的相同公共 IP 来获取服务,它会出现超时错误。
路由得到以下信息:
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
172.18.0.0/16 dev br-bbfbb2af08f1 proto kernel scope link src 172.18.0.1
***.***.***.***/** dev eth0 proto kernel scope link src ***.***.***.*** (public ip rule)
在我的主机上,ifconfig 在 inet 字段上具有带公共 ip 的接口 eth0。
在我的另一个容器上,ifconfig 在桥接网络上具有接口 eth0 和容器 ip。
我不想为我的容器使用主机网络。我无法使用内部名称在容器之间进行通信。
我希望容器能够像连接到互联网一样进行通信,使用公共 IP 和公共 URL,而忽略它们位于同一台服务器上。
我已经检查了其他相关问题,但没有找到解决我的问题的有效方法。
你可以帮帮我吗?
谢谢