查看service的状态
在swarm中部署了service之后,我们就可以通过Docker CLI来查看正在运行的service的状态。
通过ssh登录到manager节点上。
运行命令
docker service inspect --pretty <SERVICE-ID>
查看service的详细信息。
我们来看一下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": {}
}
}]
通过运行命令``来查看service在哪些节点上运行。
[manager1]$ docker service ps helloworld
NAME IMAGE NODE DESIRED STATE LAST STATE
helloworld.1.8p1vev3fq5zm0mi8g0as41w35 alpine worker2 Running Running 3 minutes
可以看见
helloworld
的一个实例运行在worker2
节点上。我们也有可能看见这个实例运行在manager节点上,因为manager节点也可以想worker节点一样执行task。我们通过这些服务的运行状态数据可以看到,服务正在运行的状态是否与我们最初的设置保持一致。
在执行task的节点上,我们可以通过
docker ps
命令来查看在该节点上运行的container。我们在worker2节点上,可以看到如下内容:
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