检查 swarm 上的服务


服务部署到 swarm 后,可以使用 Docker CLI 查看有关在 swarm 中运行的服务的详细信息。

  1. 如果尚未打开,请打开一个终端并通过 ssh 连接到您 运行您的 Manager 节点。例如,本教程使用名为 .manager1

  2. 运行 以显示详细信息 以易于阅读的格式介绍服务。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": {}
        }
    }
    ]
    
  3. Run 以查看哪些节点正在运行 服务: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
    

    在这种情况下,服务的一个实例正在节点上运行。您可能会看到该服务在 Manager 节点上运行。由 default,Swarm 中的 Manager 节点可以像 worker 节点一样执行任务。helloworldworker2

    Swarm 还向您展示了该服务的 and 任务,以便查看任务是否根据服务运行 定义。DESIRED STATECURRENT STATE

  4. 在运行任务的节点上运行,以查看有关 任务的容器。docker ps

    提示

    如果 在管理器节点以外的节点上运行, 您必须通过 SSH 连接到该节点。helloworld

    [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 中运行的服务的规模。