swarm でサービスをスケール¶
swarm に サービスをデプロイ したら、Swam 上のサービス・タスクの数を Docker CLI でスケールできる準備が整いました。
- ターミナルを開き、マネージャ・ノードを実行中のマシンに SSH で入ります。このチュートリアルでは
manager1
という名前のマシンを使います。
- swarm で実行しているサービスの期待状態を変更するには、次のコマンドを実行します。
$ docker service scale <サービスID>=<タスク数>
実行例:
$ docker service scale helloworld=5
helloworld scaled to 5
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
上で実行中です。
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/