Compartir comentarios
Las respuestas se generan en base a la documentación.

Inspeccionar un servicio en el swarm


Una vez que hayas implementado un servicio en tu swarm, puedes utilizar la CLI de Docker para ver los detalles sobre el servicio que se ejecuta en el swarm.

  1. Si aún no lo has hecho, abre una terminal y conéctate por SSH a la máquina donde ejecutas tu nodo administrador. Por ejemplo, el tutorial utiliza una máquina llamada manager1.

  2. Ejecuta docker service inspect --pretty <SERVICE-ID> para mostrar los detalles del servicio en un formato legible.

    Para ver los detalles del servicio 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
    
    Tip

    Para devolver los detalles del servicio en formato JSON, ejecuta el mismo comando sin la bandera --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": {}
            },
            "Spec": {
                "Replicated": {
                    "Replicas": 1
                }
            },
            "UpdateConfig": {
                "Parallelism": 1
            },
            "EndpointSpec": {
                "Mode": "vip"
            }
        },
        "Endpoint": {
            "Spec": {}
        }
    }
    ]
    
  3. Ejecuta docker service ps <SERVICE-ID> para ver qué nodos están ejecutando el servicio:

    [manager1]$ docker service ps helloworld
    
    NAME                                    IMAGE   NODE     DESIRED STATE  CURRENT STATE           ERROR               PORTS
    helloworld.1.8p1vev3fq5zm0mi8g0as41w35  alpine  worker2  Running        Running 3 minutes
    

    En este caso, la única instancia del servicio helloworld se está ejecutando en el nodo worker2. Es posible que en tu caso veas el servicio ejecutándose en el nodo administrador. De manera predeterminada, los nodos administradores en un swarm pueden ejecutar tareas al igual que los nodos trabajadores.

    Swarm también te muestra el estado deseado (DESIRED STATE) y el estado actual (CURRENT STATE) de la tarea del servicio para que puedas ver si las tareas se están ejecutando de acuerdo con la definición del servicio.

  4. Ejecuta docker ps en el nodo donde se ejecuta la tarea para ver los detalles sobre el contenedor de la misma.

    Tip

    Si helloworld se ejecuta en un nodo diferente de tu nodo administrador, debes conectarte por SSH a ese nodo.

    [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
    

Siguientes pasos

A continuación, cambiarás la escala del servicio que se ejecuta en el swarm.

Cambiar la escala