查看service的状态

在swarm中部署了service之后,我们就可以通过Docker CLI来查看正在运行的service的状态。

  1. 通过ssh登录到manager节点上。

  2. 运行命令docker service inspect --pretty <SERVICE-ID>查看service的详细信息。
    我们来看一下helloworld服务的详细信息:

    1. [manager1]$ docker service inspect --pretty helloworld
    2. ID: 9uk4639qpg7npwf3fn2aasksr
    3. Name: helloworld
    4. Service Mode: REPLICATED
    5. Replicas: 1
    6. Placement:
    7. UpdateConfig:
    8. Parallelism: 1
    9. ContainerSpec:
    10. Image: alpine
    11. Args: ping docker.com
    12. Resources:
    13. Endpoint Mode: vip

    提示:如果需要返回json格式的数据,去掉参数--pretty就可以了。

    1. [manager1]$ docker service inspect helloworld
    2. [{
    3. "ID": "9uk4639qpg7npwf3fn2aasksr",
    4. "Version": {
    5. "Index": 418
    6. },
    7. "CreatedAt": "2016-06-16T21:57:11.622222327Z",
    8. "UpdatedAt": "2016-06-16T21:57:11.622222327Z",
    9. "Spec": {
    10. "Name": "helloworld",
    11. "TaskTemplate": {
    12. "ContainerSpec": {
    13. "Image": "alpine",
    14. "Args": [
    15. "ping",
    16. "docker.com"
    17. ]
    18. },
    19. "Resources": {
    20. "Limits": {},
    21. "Reservations": {}
    22. },
    23. "RestartPolicy": {
    24. "Condition": "any",
    25. "MaxAttempts": 0
    26. },
    27. "Placement": {}
    28. },
    29. "Mode": {
    30. "Replicated": {
    31. "Replicas": 1
    32. }
    33. },
    34. "UpdateConfig": {
    35. "Parallelism": 1
    36. },
    37. "EndpointSpec": {
    38. "Mode": "vip"
    39. }
    40. },
    41. "Endpoint": {
    42. "Spec": {}
    43. }
    44. }]
  3. 通过运行命令``来查看service在哪些节点上运行。

    1. [manager1]$ docker service ps helloworld
    2. NAME IMAGE NODE DESIRED STATE LAST STATE
    3. helloworld.1.8p1vev3fq5zm0mi8g0as41w35 alpine worker2 Running Running 3 minutes

    可以看见helloworld的一个实例运行在worker2节点上。我们也有可能看见这个实例运行在manager节点上,因为manager节点也可以想worker节点一样执行task。

    我们通过这些服务的运行状态数据可以看到,服务正在运行的状态是否与我们最初的设置保持一致。

  4. 在执行task的节点上,我们可以通过docker ps命令来查看在该节点上运行的container。

    我们在worker2节点上,可以看到如下内容:

    1. worker2]$docker ps
    2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    3. e609dde94e47 alpine:latest "ping docker.com" 3 minutes ago Up 3 minutes helloworld.1.8p1vev3fq5zm0mi8g0as41w35