2016-10-02 17 views
2

私はノードをDocker swarmに持っています。私はレプリカで公式のドッカーのnginx画像でサービスを作成します。ポートマッピング80:80を使用すると、公開されているコンテナは4つだけです。もう1つはアクセス不能です。Dockerサービスは `n-1` swarmノードに` n`レプリカを作成します

docker service create --name web -p 80:80 --replicas 5 nginx 

方法はありますか?すべての5つのnginx-running-containersを公開することができますか? (2つのコンテナは同じノードにあり、1つのみがノードのポート80にバインドできます)

答えて

3

サービスのレプリカnを作成した場合、それらはすべてサービスのロードバランシングに参加します。 1つのノードに複数のサービスインスタンスが稼動している場合、ホストがポート80で要求を取得すると、Dockerはそのホスト上のコンテナ間でトラフィックを分散します。

4ノードの5つのレプリカで、テストトラフィックを投げて応答を確認すると、5つのコンテナすべてが応答していることがわかります。しかし、デフォルトのnginxイメージで確認するのは難しいです。 The answer to this questionは、代替画像を単純に使用して、すべてのコンテナがトラフィックに応答していることを確認します。

+0

ありがとう!私はあなたのカスタムnginxの画像をテストし、今、良い理解を持っています。偶然の偶然...私が今週の集団モードに関する情報を掘り下げ始めたとき、youtube(KC4Ad1DS8xU)のウォークスルーが私が見た最初のものでした。 – devlent

0

サーバーの少なくとも1つに複数のパブリックLANカード/仮想ネットワークが存在しない限り、私の知る限り最良のことはできません添付。なぜ、ノードごとに複数のnginxインスタンスを実行する必要があるのか​​はわかりません。

+0

まあ、私はドッカーの群れとサービスとその使い方について学んでいます。これは確かに理論的な質問です。 – devlent

関連する問題