2017-02-10 12 views
2

私はいくつかのVirtualBoxでドッカーウォームモードを試しています。 私はドッカーのスウォームモード - ワーカーノードに公開されていないポート

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

はワーカーノードに参加するとマネージャーの群れを作る完璧に動作します。だから私は1つのマネージャーノードと1つのワーカーノードを持っています。次に、公開されたポートを持つ2つのサービスを展開しています(1つは公開されたポート3306がmysql用で、もう1つは公開されたport 3000でnode.jsアプリケーション用)。

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

さて、問題は、私はcurl docker-manager:3306とそれに接続することができますが、ワーカーノード上で実行されているサービスは、そのポート(3000)を露出しないように、管理ノード上で実行されているサービスは、そのポートcorrectyを公開するということです私はそれに接続することはできませんcurl docker-worker:3000とホストに。ポートが公開されている場合は、すべてのノードで使用できるはずですが、これは問題ありません。 netstatですべてをチェックしました。マネージャノードでは、ポート(3306)は表示されますが、他のノードにはポート3000はありません。 マネージャノード上のnode.jsサービスとmysqlサービスがワーカーノード上で実行されている場合も同じことが起こります。その後、node.jsサービス用のポートがマネージャノードに公開され、ワー​​カーノード上のmysqlサービスに接続できません。

誰かが私にヒントを与えることができますか?

+0

Iは、2つのノードで群れモードでnginxのを展開します。公開ポートは8080であり、2つのノードが8080ポートの受信を待機しているが、マネージャノードだけがcurlコマンドを使用して到着できる。多分あなたは 'docker service ps ' – onebraveman

+0

を使ってマルチコンテナを起動するかどうかを見ることができます。 – EastOcean

答えて