Docker群模式网状路由根本不起作用

我有docker群模式设置与3 ubuntu 16.04机器与vagrant。 我不认为网状布线工作。

如果我build立了一个像这样的服务

docker service create --name helloworld --replicas 1 -p 8888:80 nginx

我可以看到我的服务

 docker service ls ID NAME REPLICAS IMAGE COMMAND evbp2spkjn50 helloworld 1/1 nginx 

我可以curl到实际的容器运行的机器的ip:

 curl 172.28.100.101:8888 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> .... 

但是如果我去群里的任何其他机器,我的路由不正确:

 curl 172.28.100.102:8888 curl: (7) Failed to connect to 172.28.100.102 port 8888: Connection refused 

现在,如果我扩展服务,以便像这样的所有机器上运行一个容器:

 docker service scale helloworld=3 helloworld scaled to 3 

突然之间,我可以curl到它。

 curl 172.28.100.102:8888 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> .... 

这些机器之间的所有端口都是开放的(它们分别设置为vm.network :private_network, :ip => "172.28.100.10X", :netmask => "255.255.0.0" )。

我已经尝试过一个没有改变的专用networking。

 docker --version Docker version 1.12.1, build 23cf638 

github上有一个公开的问题 ,可能与你所看到的有关。 我认为还有一些边缘情况下,网格路由不能正常工作,并在1.12的一些我自己的testing中看到了这一点。

我从Ubuntu切换到RancherOS,不良行为消失了。 我猜是有一些关于内核configuration不正确。