複数のサービスをスケールする
このステップでは、複数のサービスを同時にスケールする方法を学びます。これは、たとえばアプリケーションの異なるコンポーネントのように、一緒にスケールする必要がある複数のサービスがある場合に便利です。
まず、別のサービスを作成しましょう。nginx
イメージを使用して、レプリカ数 1 の my-nginx-service
という名前のサービスを作成します。まず、nginx
イメージを取得する必要があります。
docker pull nginx
nginx
イメージが取得されていることを示す出力が表示されるはずです。
次に、my-nginx-service
を作成します。
docker service create --name my-nginx-service --replicas 1 nginx
my-nginx-service
が作成されたことを確認する出力が表示されるはずです。
これで、2 つのサービスがあります。my-alpine-service
(現在はレプリカ数 0)と my-nginx-service
(レプリカ数 1)です。両方のサービスを一度にスケールしましょう。my-alpine-service
を 2 つのレプリカに、my-nginx-service
を 3 つのレプリカにスケールします。
docker service scale my-alpine-service=2 my-nginx-service=3
このコマンドを実行すると、Docker Swarm は指定されたレプリカ数に従って両方のサービスを更新します。両方のサービスが更新されていることを示す出力が表示されるはずです。
両方のサービスがスケールされたことを確認するには、サービスを一覧表示できます。
docker service ls
これで、my-alpine-service
が 2 つのレプリカとともに、my-nginx-service
が 3 つのレプリカとともに表示されるはずです。
また、各サービスのタスクを個別に確認して、実行中のコンテナを確認することもできます。
docker service ps my-alpine-service
これにより、my-alpine-service
の 2 つの実行中のタスクが表示されます。
docker service ps my-nginx-service
これにより、my-nginx-service
の 3 つの実行中のタスクが表示されます。
最後に、作成したサービスをクリーンアップしましょう。docker service rm
コマンドを使用して両方のサービスを削除できます。
docker service rm my-alpine-service my-nginx-service
両方のサービスが削除されたことを確認する出力が表示されるはずです。
サービスが削除されたことを確認するには、再度サービスを一覧表示します。
docker service ls
サービスは表示されないはずです。