Swarm 上のサービスの確認
Swarm に対して サービスのデプロイ を行ったので、Docker CLI を利用して Swarm 内で起動しているサービスの詳細を確認していきます。
-
マシンへの接続ができていなければ、端末画面を開いて SSH により接続します。 接続先はマネージャーノードを起動したマシンです。 たとえばこのチュートリアルでは
manager1
というマシンを利用します。 -
docker service inspect --pretty <SERVICE-ID>
を実行します。 サービスの詳細が非常にわかりやすく表示されます。helloworld
サービスの詳細を見るには、以下のようにします。[manager1]$ docker service inspect --pretty helloworld ID: 9uk4639qpg7npwf3fn2aasksr Name: helloworld Service Mode: REPLICATED Replicas: 1 Placement: UpdateConfig: Parallelism: 1 ContainerSpec: Image: alpine Args: ping docker.com Resources: Endpoint Mode: vip
ヒント: サービスの詳細表示を JSON 形式に戻すには、
--pretty
フラグを除いて同じコマンドを実行します。[manager1]$ docker service inspect helloworld [ { "ID": "9uk4639qpg7npwf3fn2aasksr", "Version": { "Index": 418 }, "CreatedAt": "2016-06-16T21:57:11.622222327Z", "UpdatedAt": "2016-06-16T21:57:11.622222327Z", "Spec": { "Name": "helloworld", "TaskTemplate": { "ContainerSpec": { "Image": "alpine", "Args": [ "ping", "docker.com" ] }, "Resources": { "Limits": {}, "Reservations": {} }, "RestartPolicy": { "Condition": "any", "MaxAttempts": 0 }, "Placement": {} }, "Mode": { "Replicated": { "Replicas": 1 } }, "UpdateConfig": { "Parallelism": 1 }, "EndpointSpec": { "Mode": "vip" } }, "Endpoint": { "Spec": {} } } ]
-
docker service ps <SERVICE-ID>
を実行します。 サービスがどのノード上で動いているかがわかります。[manager1]$ docker service ps helloworld NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS helloworld.1.8p1vev3fq5zm0mi8g0as41w35 alpine worker2 Running Running 3 minutes
この例では
helloworld
サービスの 1 インスタンスがworker2
ノード上で動いているのがわかります。 マネージャーノード上においても、サービスが動いているかもしれません。 デフォルトにおいて Swarm のマネージャーノードは、ワーカーノードと同じようにタスクを実行することができます。Swarm においては、サービスタスクに対して
DESIRED STATE
(期待される状態)とCURRENT STATE
(現在の状態)が示されます。 サービス定義に従ってタスクが実行されているかどうかが、これによってわかります。 -
タスクが動いているノード上において
docker ps
を実行します。 これにより、そのタスクに応じたコンテナーの詳細を確認することができます。ヒント:
helloworld
がマネージャーノードではない、別のノード上で動いている場合は、そのノードに SSH でアクセスしておくことが必要です。[worker2]$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e609dde94e47 alpine:latest "ping docker.com" 3 minutes ago Up 3 minutes helloworld.1.8p1vev3fq5zm0mi8g0as41w35
次にすることは
次は、Swarm 内で起動しているサービスに対して スケールの変更 を行います。
tutorial, cluster management, swarm mode