检查 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 中运行的服务的伸缩。