

# Diagnósticos de Docker en Amazon ECS
<a name="docker-diags"></a>

Docker ofrece varias herramientas de diagnóstico que le ayudan a solucionar problemas en sus contenedores y tareas. Para obtener más información sobre todas las utilidades de línea de comandos de Docker disponibles, consulte la [referencia de la CLI de Docker](https://docs.docker.com/reference/cli/docker/) en la documentación de Docker. Puede obtener acceso a las utilidades de línea de comando de Docker conectando a una instancia de contenedor mediante SSH.

Los códigos de salida que notifican los contenedores de Docker también pueden facilitar información de diagnóstico (por ejemplo, el código de salida 137 significa que el contenedor recibió una señal `SIGKILL`). Para obtener más información, consulte [Exit Status](https://docs.docker.com/reference/cli/docker/container/run/#exit-status) en la documentación de Docker.

## Enumeración de los contenedores de Docker en Amazon ECS
<a name="docker-ps"></a>

Puede utilizar el comando **docker ps** en la instancia de contenedor para enumerar los contenedores en ejecución. En el ejemplo siguiente, solo se está ejecutando el agente de contenedor de Amazon ECS. Para obtener más información, consulte [docker ps](https://docs.docker.com/reference/cli/docker/#ps) en la documentación de Docker.

```
docker ps
```

Salida:

```
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
```

Puede utilizar el comando **docker ps -a** para ver todos los contenedores (incluso los contenedores parados o cancelados). Esto resulta útil para mostrar contenedores que se han parado de forma imprevista. En el ejemplo siguiente, el contenedor `f7f1f8a7a245` finalizó hace 9 segundos, por lo que no aparece en una salida **docker ps** sin el indicador `-a`.

```
docker ps -a
```

Salida:

```
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
```

## Visualización de los registros de Docker en Amazon ECS
<a name="docker-logs"></a>

Puede ver los flujos `STDOUT` y `STDERR` para un contenedor con el comando **docker logs**. En este ejemplo, los registros se muestran para el contenedor *dc7240fe892a* y se canalizan a través del comando **head** por razones de brevedad. Para obtener más información, acceda a [docker logs](https://docs.docker.com/reference/cli/docker/#logs) en la documentación de Docker.

**nota**  
Los registros de Docker solo están disponibles en la instancia del contenedor si utiliza el controlador de registro `json` predeterminado. Si ha configurado las tareas para que utilicen el controlador de registros `awslogs`, sus registros de contenedor estarán disponibles en CloudWatch Logs. Para obtener más información, consulte [Envío de registros de Amazon ECS a CloudWatch](using_awslogs.md).

```
docker logs dc7240fe892a | head
```

Salida:

```
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"
```

## Inspección de los contenedores de Docker en Amazon ECS
<a name="docker-inspect"></a>

Si dispone del ID de Docker de un contenedor, puede inspeccionarlo con el comando **docker inspect**. La inspección de contenedores ofrece la vista más detallada del entorno en el que se puede lanzar un contenedor. Para obtener más información, consulte [docker inspect](https://docs.docker.com/reference/cli/docker/#inspect) en la documentación de Docker.

```
docker inspect dc7240fe892a
```

Salida:

```
[{
    "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",
...
```