2017-10-20 12 views
0

私はたくさんの群集の容器を持っています(現在、単一のホストにありますが、マルチノードの群に適合するマルチホストシステムです)。このシステムは、データサーバと、サーバによって受信されたビットを処理し、結果を取り込む自律型ワーカーの集合で構成される。入力データの取得と出力データの取り込みは、HTTP GET/POSTを使用して行われます。サーバー側(データ提供と結果受信)は動作し、Dockerなしで任意のホストで動作しているワーカーに対してテストすると、問題なく実行されます。しかし、私はこれらの労働者をドッカー集団に入れる必要があります。Docker:サーバーに接続している作業員を集めよう

私が達成できないのは、さまざまな隊員と外部サーバーとの通信です。私のサーバーは、いくつかのフォーラムで掘った後、ポート8080

python test-dataserver.py -H 10.69.180.30 -p 8080 

で、IP 10.69.180.30を持つホストで実行されて、私は--subnet 10.69.180.0/24でオーバーレイネットワークを作成しようとしました、その後、このネットワークに接続されたワーカーのサービスを別のホストに開始します。しかし、方法はありません。この単純な例では

docker network create --driver overlay --subnet 10.69.180.0/24 mynet 
docker service create --network mynet --name mysrv --replicas 4 \ 
       centos curl http://10.69.180.30:8080/get_task 

私は労働者を呼び出すちょうどcurlサーバーとget_taskノードのアドレスにしないでください。実行するタスクに関する情報を含むJSON文字列を返します。しかし、サーバー側では私は何の要求も受けていません。

私はネットワークの専門家ではないので、私は些細な何か...欠けているかもしれません(ちなみに、私は最初に成功せず、同じことをしようとしましたが、同じホストで実行されているサーバーを持つ。)

この設定が可能かどうか知っていますか?私はこの仕事をするためのヒントを非常に感謝します...

ありがとうございます!

答えて

1

私はドッカーズのデフォルトのIP範囲で

ドッカネットワークをオーバーレイネットワークを作成することになり、これは、サービスへの外部ホストを追加した後--driverオーバーレイMYNET

を作成します。

docker service create 
     --add-host external:10.69.180.30 \ 
     --network mynet --name mysrv --replicas 4 \ 
     centos curl http://external:8080/get_task 
+0

しかし、swarm createコマンドで '--add-host'オプションを使用できますか?私はそれが_traditional_コンテナでのみ利用可能だと思った。少なくとも私のシステムでは動作しません... – aardalath

+0

間違いなく、動作します!つまり、 '/ etc/hosts'ファイルにサーバのIPが含まれるように画像を変更すると、通信が確立されます。さて、私は同じことを達成したいと思いますが、容器のイメージを調整する必要はありません... – aardalath

関連する問題