Diagnósticos de Docker en Amazon ECS
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
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
Enumeración de los contenedores de Docker en Amazon ECS
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
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
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
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 .
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
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
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",
...