swarm でサービスをスケール

swarm に サービスをデプロイ したら、sarm 上のサービス・タスクの数を Docker CLI でスケールできる準備が整いました。サービス内で実行中のコンテナを「タスク」(task)と呼びます。

  1. ターミナルを開き、manager ノードを実行中のマシンに SSH で入ります。このチュートリアルでは manager1 という名前のマシンを使います。

  1. swarm で実行しているサービスの期待状態を変更するには、次のコマンドを実行します。

    $ docker service scale <サービスID>=<タスク数>
    

    実行例:

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

    $ docker service ps helloworld
    
    NAME                                    IMAGE   NODE      DESIRED STATE  CURRENT STATE
    helloworld.1.8p1vev3fq5zm0mi8g0as41w35  alpine  worker2   Running        Running 7 minutes
    helloworld.2.c7a7tcdq5s0uk3qr88mf8xco6  alpine  worker1   Running        Running 24 seconds
    helloworld.3.6crl09vdcalvtfehfh69ogfb1  alpine  worker1   Running        Running 24 seconds
    helloworld.4.auky6trawmdlcne8ad8phb0f1  alpine  manager1  Running        Running 24 seconds
    helloworld.5.ba19kca06l18zujfwxyc5lkyn  alpine  worker2   Running        Running 24 seconds
    

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 サービスは終わりです。次のステップでは サービスの削除 方法を理解します。