Swarm 内サービスのスケール変更
Swarm に対して サービスのデプロイ を行ったら、次は Docker CLI を使って、サービス内のコンテナー数のスケール変更を行います。 サービス内に起動しているコンテナーは「タスク」と呼びます。
-
マシンへの接続ができていなければ、端末画面を開いて 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
この結果から Alpine Linux の実行インスタンスが合計で 5 つのタスクとなるように Swarm が 4 つの新たなタスクを実行したことがわかります。 このタスクは Swarm 上の 3 つのノード間に分散されています。 そのうちの 1 つが
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
サービスによる作業は終了です。
次の手順では サービスの削除 について示します。