2017-02-10 28 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

回答

相關問題