⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Inspecter un service sur le swarm


Lorsque vous avez déployé un service dans votre swarm, vous pouvez utiliser la CLI Docker pour voir les détails du service en cours d'exécution dans le swarm.

  1. Si vous ne l'avez pas déjà fait, ouvrez un terminal et connectez-vous en ssh à la machine où vous exécutez votre nœud gestionnaire. Par exemple, le tutoriel utilise une machine nommée manager1.

  2. Exécutez docker service inspect --pretty <SERVICE-ID> pour afficher les détails d'un service dans un format facilement lisible.

    Pour voir les détails du 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
    
    Tip

    Pour retourner les détails du service en format json, exécutez la même commande sans le flag --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. Exécutez docker service ps <SERVICE-ID> pour voir quels nœuds exécutent le service :

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

    Dans ce cas, l'unique instance du service helloworld s'exécute sur le nœud worker2. Vous pourriez voir le service s'exécuter sur votre nœud gestionnaire. Par défaut, les nœuds gestionnaires dans un swarm peuvent exécuter des tâches comme les nœuds travailleurs.

    Swarm vous montre également l'ÉTAT DÉSIRÉ et l'ÉTAT ACTUEL de la tâche de service afin que vous puissiez voir si les tâches s'exécutent selon la définition du service.

  4. Exécutez docker ps sur le nœud où la tâche s'exécute pour voir les détails du conteneur pour la tâche.

    Tip

    Si helloworld s'exécute sur un nœud autre que votre nœud gestionnaire, vous devez vous connecter en ssh à ce nœud.

    [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
    

Prochaines étapes

Ensuite, vous allez changer l'échelle pour le service en cours d'exécution dans le swarm.