2017-02-10 27 views
2

我试用了几个VirtualBoxes上的docker warm模式。 我创建的经理群与Docker群模式 - 在工作节点上没有发布的端口

docker swarm init --advertise-addr 192.168.15.4 --listen-addr 192.168.15.4 

加入一个工作节点完美的作品。所以我有一个管理器节点和一个工作节点。然后我使用发布的端口部署两个服务(一个发布端口为3306,另一个发布端口3000为node.js应用程序)。

docker service create --name mysqlbox --publish 3306:3306 mysqlimage 
docker service create --name nodebox --publish 3000:3000 nodeimage 

现在的问题是,这是管理器节点上运行的服务暴露了其端口correcty这样我就可以连接到它与curl docker-manager:3306但工作节点上运行的服务不暴露其端口(3000)到主机,所以我不能连接到它与curl docker-worker:3000。我还读到,如果端口已发布,它应该在所有节点上可用,但这不起作用。 检查了所有与netstat。在管理器节点上,端口(3306)可见,但在任何其他节点上无端口3000。 如果管理节点和mysql服务上的node.js服务在worker节点上运行,则会发生同样的情况。然后,node.js服务的端口发布在manager节点上,我无法连接到worker节点上的mysql服务。

有人能给我一个提示吗?

+0

我在两个节点中使用群集模式部署nginx。发布端口为8080,这两个节点存在8080端口侦听,但只有管理节点可以使用curl命令到达。也许你可以看到是否使用'docker service ps ' – onebraveman

+0

启动多容器尝试停止docker host上的防火墙(d) – EastOcean

回答

相关问题