docker service scale

読む時間の目安: 2 分

説明

1 つまたは複数のレプリカサービスをスケール変更します。

API 1.24 以上  このコマンドを利用するには、クライアントとデーモンの API はともに、最低でも 1.24 である必要があります。 クライアント上においてdocker versionコマンドを実行して、クライアントとデーモンの API バージョンを確認してください。

Swarm このコマンドは Swarm オーケストレーターにおいて動作します。

利用方法

$ docker service scale SERVICE=REPLICAS [SERVICE=REPLICAS...]

追加説明

scale コマンドは、1 つまたは複数のレプリカサービスに対して、そのレプリカ数を所定数に設定することでスケール変更を行います。 このコマンドはグローバルモードのサービスに適用することはできません。 コマンドを実行するとすぐにプロンプトに戻ってきますが、サービスに対する実際のスケール変更には、ある程度の時間を要します。 Swarm モード内においてサービスをアクティブにしたまま、サービスのレプリカを停止するには、スケール数に 0 を設定します。

メモ

これはクラスター管理コマンドです。 したがって Swarm のマネージャーノード上で実行する必要があります。 マネージャーノードとワーカーノードについては Swarm モード の節を参照してください。

本コマンドの利用例については、以下に示す 利用例の節 を参照してください。

オプション

名前/省略形 デフォルト 説明
--detach , -d API 1.29 以上
サービス処理を待たずに即座に戻ります。

利用例

1 サービスのスケール変更

以下のコマンドは「frontend」サービスを 50 タスクにスケール変更します。

$ docker service scale frontend=50

frontend scaled to 50

以下のコマンド実行ではグローバルサービスを 10 タスクにスケール変更しようとして、エラー終了しています。

$ docker service create --mode global --name backend backend:latest

b4g08uwuairexjub6ome6usqh

$ docker service scale backend=10

backend: scale can only be used with replicated or replicated-job mode

その直後にdocker service lsを実行してみると、実際のレプリカ数が以下のように確認できます。

$ docker service ls --filter name=frontend

ID            NAME      MODE        REPLICAS  IMAGE
3pr5mlvu3fh9  frontend  replicated  15/50     nginx:alpine

サービスのスケール変更は docker service update コマンドを使って行うこともできます。 以下に示すコマンドはいずれも同じことです。

$ docker service scale frontend=50
$ docker service update --replicas=50 frontend

複数サービスのスケール変更

docker service scaleコマンドは、複数のサービスに対してのタスク設定を一度に行うことができます。 以下に示す例は backend と frontend の両サービスのスケール変更を行います。

$ docker service scale backend=3 frontend=5

backend scaled to 3
frontend scaled to 5

$ docker service ls

ID            NAME      MODE        REPLICAS  IMAGE
3pr5mlvu3fh9  frontend  replicated  5/5       nginx:alpine
74nzcxxjv6fq  backend   replicated  3/3       redis:3.0.6

上位コマンド

コマンド 説明
docker service サービスを管理します。
コマンド 説明
docker service create 新たなサービスを生成します。
docker service inspect サービスの詳細情報を表示します。
docker service logs サービスまたはタスクのログを取得します。
docker service ls サービス一覧を表示します。
docker service ps 1 つまたは複数サービスのタスクを一覧表示します。
docker service rm 1 つまたは複数のサービスを削除します。
docker service rollback サービス設定に対しての変更を元に戻します。
docker service scale 1 つまたは複数のレプリカサービスをスケール変更します。
docker service update サービスを更新します。