檢查 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 還會向你顯示服務任務的
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 中執行的服務的規模。
更改規模