当前,我正在尝试在主机上创建docker swarm网络。我们有两个不同的网站,一个是封闭的专用网络。在这个封闭的站点中,只有一个公共IP分配给我们,该站点中的主机具有私有IP地址。另一个网站中的主机对每个主机都有自己的公用IP地址,因此没有问题。
我想做的是连接封闭网络站点中的主机(称为内部主机)和具有自己的公共IP地址的主机(称为外部主机)。
因为为封闭网络站点分配给我们的唯一一个公共IP,所以我将此公共IP设置为封闭网络站点中的一个内部主机,并且该主机成为了docker swarm manager。然后,内部主机使用群集管理器主机的内部IP地址加入到群集网络,而外部主机使用公用IP地址加入。
例如,在内部主机中:
docker swarm join --token ... 172.0.12.12:2377
以及在外部主机中:
docker swarm join --token ... 123.123.123.123:2377
加入成功完成,我可以使用docker node ls
命令在swarm管理器中正确识别所有节点。但是,当我创建覆盖网络时,该网络在外部主机中被识别,但在内部主机中不被识别。因此,当我在外部主机中创建容器并尝试从内部主机ping时,它失败了。
这是错误的方式吗?还是我应该检查什么?任何想法都将非常有帮助。谢谢!