

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Diagnostic Docker dans Amazon ECS
<a name="docker-diags"></a>

Docker fournit plusieurs outils de diagnostic qui peuvent vous aider à résoudre les problèmes que vous rencontrez avec vos conteneurs et vos tâches. Pour plus d’informations sur tous les utilitaires de ligne de commande Docker disponibles, consultez la [Référence de la CLI Docker](https://docs.docker.com/reference/cli/docker/) dans la documentation Docker. Vous pouvez accéder aux utilitaires de ligne de commande Docker en vous connectant à une instance de conteneur à l'aide de SSH.

Les codes de sortie fournis par les conteneurs Docker peuvent également offrir des informations de diagnostic (par exemple, le code de sortie 137 signifie que le conteneur a reçu un signal `SIGKILL`). Pour plus d'informations, consultez la rubrique [Exit Status](https://docs.docker.com/reference/cli/docker/container/run/#exit-status) de la documentation Docker.

## Recensement des conteneurs Docker dans Amazon ECS
<a name="docker-ps"></a>

Vous pouvez utiliser la commande **docker ps** de votre instance de conteneur pour dresser la liste des conteneurs en cours d'exécution. Dans l’exemple suivant, seul l’agent de conteneur Amazon ECS est en cours d’exécution. Pour plus d'informations, consultez la rubrique [docker ps](https://docs.docker.com/reference/cli/docker/#ps) de la documentation Docker.

```
docker ps
```

Sortie :

```
CONTAINER ID        IMAGE                            COMMAND             CREATED             STATUS              PORTS                        NAMES
cee0d6986de0        amazon/amazon-ecs-agent:latest   "/agent"            22 hours ago        Up 22 hours         127.0.0.1:51678->51678/tcp   ecs-agent
```

Vous pouvez utiliser la commande **docker ps -a** pour afficher tous les conteneurs (même ceux qui ont été arrêtés ou supprimés). Cela peut s'avérer utile pour répertorier les conteneurs qui s'arrêtent inopinément. Dans l'exemple suivant, le conteneur `f7f1f8a7a245` a disparu il y a 9 secondes. Il n'est donc pas visible dans une sortie **docker ps** sans l'indicateur `-a`.

```
docker ps -a
```

Sortie :

```
CONTAINER ID        IMAGE                                       COMMAND                CREATED             STATUS                        PORTS                        NAMES
db4d48e411b1        amazon/ecs-emptyvolume-base:autogenerated   "not-applicable"       19 seconds ago                                                                 ecs-console-sample-app-static-6-internalecs-emptyvolume-source-c09288a6b0cba8a53700
f7f1f8a7a245        busybox:buildroot-2014.02                   "\"sh -c '/bin/sh -c   22 hours ago        Exited (137) 9 seconds ago                                 ecs-console-sample-app-static-6-busybox-ce83ce978a87a890ab01
189a8ff4b5f0        httpd:2                                     "httpd-foreground"     22 hours ago        Exited (137) 40 seconds ago                                ecs-console-sample-app-static-6-simple-app-86caf9bcabe3e9c61600
0c7dca9321e3        amazon/ecs-emptyvolume-base:autogenerated   "not-applicable"       22 hours ago                                                                   ecs-console-sample-app-static-6-internalecs-emptyvolume-source-90fefaa68498a8a80700
cee0d6986de0        amazon/amazon-ecs-agent:latest              "/agent"               22 hours ago        Up 22 hours                   127.0.0.1:51678->51678/tcp   ecs-agent
```

## Affichage des journaux Docker dans Amazon ECS
<a name="docker-logs"></a>

Vous pouvez consulter les flux `STDOUT` et `STDERR` d'un conteneur avec la commande **docker logs**. Dans cet exemple, les journaux sont affichés pour le *dc7240fe892a* conteneur et transmis via la **head** commande par souci de concision. Pour plus d'informations, consultez [docker logs](https://docs.docker.com/reference/cli/docker/#logs) dans la documentation Docker.

**Note**  
Les journaux Docker ne sont disponibles que sur l'instance de conteneur si vous utilisez le pilote de journal `json` par défaut. Si vous avez configuré vos tâches pour utiliser le pilote de `awslogs` journal, les journaux de vos conteneurs sont disponibles dans CloudWatch Logs. Pour de plus amples informations, veuillez consulter [Envoyez les journaux Amazon ECS à CloudWatch](using_awslogs.md).

```
docker logs dc7240fe892a | head
```

Sortie :

```
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.11. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.11. Set the 'ServerName' directive globally to suppress this message
[Thu Apr 23 19:48:36.956682 2015] [mpm_event:notice] [pid 1:tid 140327115417472] AH00489: Apache/2.4.12 (Unix) configured -- resuming normal operations
[Thu Apr 23 19:48:36.956827 2015] [core:notice] [pid 1:tid 140327115417472] AH00094: Command line: 'httpd -D FOREGROUND'
10.0.1.86 - - [23/Apr/2015:19:48:59 +0000] "GET / HTTP/1.1" 200 348
10.0.0.154 - - [23/Apr/2015:19:48:59 +0000] "GET / HTTP/1.1" 200 348
10.0.1.86 - - [23/Apr/2015:19:49:28 +0000] "GET / HTTP/1.1" 200 348
10.0.0.154 - - [23/Apr/2015:19:49:29 +0000] "GET / HTTP/1.1" 200 348
10.0.1.86 - - [23/Apr/2015:19:49:50 +0000] "-" 408 -
10.0.0.154 - - [23/Apr/2015:19:49:50 +0000] "-" 408 -
10.0.1.86 - - [23/Apr/2015:19:49:58 +0000] "GET / HTTP/1.1" 200 348
10.0.0.154 - - [23/Apr/2015:19:49:59 +0000] "GET / HTTP/1.1" 200 348
10.0.1.86 - - [23/Apr/2015:19:50:28 +0000] "GET / HTTP/1.1" 200 348
10.0.0.154 - - [23/Apr/2015:19:50:29 +0000] "GET / HTTP/1.1" 200 348
time="2015-04-23T20:11:20Z" level="fatal" msg="write /dev/stdout: broken pipe"
```

## Inspection des conteneurs Docker dans Amazon ECS
<a name="docker-inspect"></a>

Si vous avez l'ID Docker d'un conteneur, vous pouvez l'examiner avec la commande **docker inspect**. L'inspection des conteneurs offre la vue la plus détaillée de l'environnement dans lequel un conteneur a été lancé. Pour plus d'informations, consultez la rubrique [docker inspect](https://docs.docker.com/reference/cli/docker/#inspect) de la documentation Docker.

```
docker inspect dc7240fe892a
```

Sortie :

```
[{
    "AppArmorProfile": "",
    "Args": [],
    "Config": {
        "AttachStderr": false,
        "AttachStdin": false,
        "AttachStdout": false,
        "Cmd": [
            "httpd-foreground"
        ],
        "CpuShares": 10,
        "Cpuset": "",
        "Domainname": "",
        "Entrypoint": null,
        "Env": [
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/apache2/bin",
            "HTTPD_PREFIX=/usr/local/apache2",
            "HTTPD_VERSION=2.4.12",
            "HTTPD_BZ2_URL=https://www.apache.org/dist/httpd/httpd-2.4.12.tar.bz2"
        ],
        "ExposedPorts": {
            "80/tcp": {}
        },
        "Hostname": "dc7240fe892a",
...
```