swarm でサービスをスケール

swarm に サービスをデプロイ したら、Swam 上のサービス・タスクの数を Docker CLI でスケールできる準備が整いました。

  1. ターミナルを開き、マネージャ・ノードを実行中のマシンに SSH で入ります。このチュートリアルでは manager1 という名前のマシンを使います。
  1. swarm で実行しているサービスの期待状態を変更するには、次のコマンドを実行します。
$ docker service scale <サービスID>=<タスク数>

実行例:

$ docker service scale helloworld=5
helloworld scaled to 5
  1. docker service tasks <サービスID> を実行し、更新されたタスク一覧を表示します。
$ docker service tasks helloworld

ID                         NAME          SERVICE     IMAGE   LAST STATE          DESIRED STATE  NODE
8p1vev3fq5zm0mi8g0as41w35  helloworld.1  helloworld  alpine  Running 7 minutes   Running        worker2
c7a7tcdq5s0uk3qr88mf8xco6  helloworld.2  helloworld  alpine  Running 24 seconds  Running        worker1
6crl09vdcalvtfehfh69ogfb1  helloworld.3  helloworld  alpine  Running 24 seconds  Running        worker1
auky6trawmdlcne8ad8phb0f1  helloworld.4  helloworld  alpine  Running 24 seconds  Accepted       manager1
ba19kca06l18zujfwxyc5lkyn  helloworld.5  helloworld  alpine  Running 24 seconds  Running        worker2

swarm は4つの新しいタスクを作成し、Alpine Linux のインスタンスが合計5つになったのが分かります。タスクは swarm の3つのノード間で分散されています。2つは manager1 上で実行中です。

  1. docker ps を実行し、接続中のノード上で実行中のコンテナを確認できます。次の例は manager1 上で実行中のタスクを表示しています。
$ docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
528d68040f95        alpine:latest       "ping docker.com"   About a minute ago   Up About a minute                       helloworld.4.auky6trawmdlcne8ad8phb0f1

他のノードで実行中のコンテナを確認したい場合は、各ノードに SSH で入り docker ps コマンドで確認できます。

次は何をしますか?

このチュートリアルでは helloworld サービスは終わりです。次のステップでは サービスの削除 方法を理解します。