2017-05-31 14 views
0

私はドッカー集団を持っています。
ドッカーハブにあらかじめ設定されたドッカー画像があり、必要に応じて画像のコンテナを実行したいと考えています。
ホストに行ってコンテナを実行できるapiを作成しました。
今、私はクラスタでそのコンテナを単一のホストを指す代わりに回転させたいと思います。
私はdocker-composeとdocker-stackを見ました。
しかし、だから、ドキュメントあたり If there are existing containers for a service, and the service’s configuration or image was changed after the container’s creation, docker-compose up picks up the changes by stopping and recreating the containers (preserving mounted volumes). クラスタ内のオンデマンドでドッキング用のコンテナを作成する

として、どのように私は、クラスタ上の要求に応じてコンテナを起動することができますか?

答えて

0

Swarmでは、コンテナを作成するためにイメージに基づいてサービスを作成する必要があります。各マシンでこのサービスのコンテナを1つ起動し、レプリケートされた2つのモードがあり、swarmのロードバランサはコンテナをホストするマシンを選択します(もちろん--constraintオプションでコンストレインを追加できます)。

docker service create --name=my_name --replicas=4 my_image 

要求に応じてコンテナを起動する場合は、このサービスをタスク(コンテナ)の希望数に合わせてスケーリングする必要があります。

docker service scale my_service=5 

あなたがサービスのタスクの数を取得し、私自身の経験では、サービス+ 1

のタスクの数にそれを拡張するSDKを使用することができますたとえば、スウォームはステートレスなコンポーネントのための唯一の良いです(実際にデータベースを扱う方法はわかりません...)

私は質問を理解していないことを願っています。

+0

このドッカーサービススケール戦略を使用して、必要に応じてコンテナを降ろすことはできますか? – svKris

+0

もちろん、ドッカースケールでは、コンテナのレプリカ数(サービスのイメージで定義されます)を選択します。つまり、すべてのコンテナをシャットダウンするオプションのパラメータとして0を指定したり、必要な操作を行うことができます。 サービスによって実行されているコンテナの数を確認するには、マネージャノードで 'docker service ls'を使用できます。メモリの上限に達すると、サービスのすべてのコンテナが起動していないことがわかります。 – Nolyurn

関連する問題