在 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` 服務的一個執行個體正在 `worker2` 節點上執行。您可能會看到服務在您的管理節點上執行。預設情況下,Swarm 中的管理節點可以像工作節點一樣執行任務。
Swarm 也會顯示服務任務的「期望狀態」和「目前狀態」,以便您可以查看任務是否根據服務定義執行。
在執行任務的節點上執行 `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 中執行的服務的規模。