Docker 1.12 Swarm Overlay网络发布端口

Docker 1.12 Swarm Overlay Network Published Port

我正在尝试 运行 Docker 1.12 上的一个相当简单的集群示例:

我有两个服务:

drupalapp     mastermindg/rpi-apache2php7  
drupaldb      mysql:latest

Drupalapp 已发布端口 80:

"Endpoint": {
        "Spec": {
            "Mode": "vip",
            "Ports": [
                {
                    "Protocol": "tcp",
                    "TargetPort": 80,
                    "PublishedPort": 80
                }
            ]
        },
        "Ports": [
            {
                "Protocol": "tcp",
                "TargetPort": 80,
                "PublishedPort": 80
            }
        ],
        "VirtualIPs": [
            {
                "NetworkID": "5citix4eeoe9isd2ainbt2uvn",
                "Addr": "10.255.0.7/16"
            },
            {
                "NetworkID": "6lgv0o648l7inrbu6abh5ac79",
                "Addr": "10.0.9.4/24"
            }
        ]
    },

我有一个覆盖网络:

swarmed       "Subnet": "10.0.9.0/24",
                "Gateway": "10.0.9.1"

drupalapp 实例已启动且稳定。

我的问题是,即使我看到端口 80 在每个节点上侦听,我也无法访问任何主机上的端口 80。

如何连接到我的 swarm 上的 drupalapp 运行ning?

(将评论转化为答案)

1.12 中报告了几个关于服务发现和发布端口失败的问题。 Pull request #25603 appears to fix a bunch of them and is included in 1.12.1 which was released last week. Note that some users in issue #24789 即使在 1.12.1 中仍然报告问题,因此可能仍有一些边缘情况需要解决。