Swarm 内サービスのスケール変更

Swarm に対して サービスのデプロイ を行ったら、次は Docker CLI を使って、サービス内のコンテナー数のスケール変更を行います。 サービス内に起動しているコンテナーは「タスク」と呼びます。

  1. マシンへの接続ができていなければ、端末画面を開いて SSH により接続します。 接続先はマネージャーノードを起動したマシンです。 たとえばこのチュートリアルではmanager1というマシンを利用します。

  2. Swarm 内で起動しているサービスの状態を変更するため、以下のコマンドを実行します。

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

    たとえば以下のとおりです。

    $ docker service scale helloworld=5
    
    helloworld scaled to 5
    
  3. 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
    

    この結果から Alpine Linux の実行インスタンスが合計で 5 つのタスクとなるように Swarm が 4 つの新たなタスクを実行したことがわかります。 このタスクは Swarm 上の 3 つのノード間に分散されています。 そのうちの 1 つがmanager1上で実行されています。

  4. 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サービスによる作業は終了です。 次の手順では サービスの削除 について示します。

tutorial, cluster management, swarm mode, scale