swarm でサービスをスケール¶
swarm に サービスをデプロイ したら、sarm 上のサービス・タスクの数を Docker CLI でスケールできる準備が整いました。サービス内で実行中のコンテナを「タスク」(task)と呼びます。
- ターミナルを開き、manager ノードを実行中のマシンに SSH で入ります。このチュートリアルでは
manager1
という名前のマシンを使います。
swarm で実行しているサービスの期待状態を変更するには、次のコマンドを実行します。
$ docker service scale <サービスID>=<タスク数>
実行例:
$ docker service scale helloworld=5 helloworld scaled to 5
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
上で実行中です。
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
サービスは終わりです。次のステップでは サービスの削除 方法を理解します。
参考
- Scale the service in the swarm
- https://docs.docker.com/engine/swarm/swarm-tutorial/scale-service/