Docker Swarm – networking覆盖不能连接所有容器

我目前有3个EC2实例设置了Docker Swarm和Consul。 我有3个简单的节点应用程序遍布所有3个实例,然后nginx在我的swarm主机上进行路由。

使用覆盖networking指南,我创build了一个名为mynet的新覆盖mynet并将每个容器连接到此networking。 使用docker inspect我可以确认每个节点容器和nginx容器都连接到mynet并具有IP。 但是,在对我的nginx容器进行切换之后,它只能通过networking与位于同一主机上的节点应用程序通信,而不能与集群中其他主机上的节点应用程序进行通信。

在运行docker network inspect mynet ,只列出了两个容器(同一主机上的nginx和一个节点实例),而另外两个容器没有列出,即使它们具有该覆盖networking的名称和IP从docker inspect

这个想法是使用一个nginx反向代理来添加任何联机到它的configuration的新的容器,但我坚持让容器所有连接。 根据Dockernetworking文档覆盖这应该是可能的。

我究竟做错了什么? 谢谢。

编辑:

在发送垃圾邮件之后, docker network inspect mynet几次docker network inspect mynet ,看起来容器不断地与networking连接和断开连接,即使我已closures了所有的防火墙并打开了用于testing目的的端口。 什么会导致这样的事情?

原来有两个问题是我的问题。

一个是我使用的是docker network overlay不支持的Kernel 3.13。 升级到3.16解决了这个问题。 其次,Swarm 1.0.1中存在一个错误,可以正确聚合networking信息。 这里已经修好了,但截至撰写时尚未公布。