Diagnostica Docker in Amazon ECS - Amazon Elastic Container Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Diagnostica Docker in Amazon ECS

Docker fornisce diversi strumenti di diagnostica che ti aiutano a risolvere i problemi relativi a container e attività. Per ulteriori informazioni su tutte le utility a riga di comando Docker disponibili, consulta l'argomento relativo alla riga di comando Docker nella documentazione Docker. Puoi accedere alle utility a riga di comando Docker connettendoti a un'istanza di container tramite SSH.

Anche i codici di uscita riportati dai container Docker possono fornire informazioni di diagnostica (ad esempio, il codice di uscita 137 indica che il container ha ricevuto un segnale SIGKILL). Per ulteriori informazioni, consulta la sezione relativa allo stato di uscita nella documentazione Docker.

Elenca i contenitori Docker in Amazon ECS

Puoi utilizzare il comando docker ps sulla tua istanza di container per visualizzare l'elenco dei container in esecuzione. Nell'esempio seguente, è in esecuzione solo l'agente container Amazon ECS. Per ulteriori informazioni, consulta la sezione relativa al comando docker ps nella documentazione Docker.

docker ps

Output:

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

Puoi utilizzare il comando docker ps -a per visualizzare tutti i container (anche quelli sospesi o interrotti). Questo comando è utile per visualizzare l'elenco dei container che si arrestano inaspettatamente. Nell'esempio seguente, il container f7f1f8a7a245 è stato chiuso 9 secondi fa, pertanto non compare nell'output del comando docker ps senza il flag -a.

docker ps -a

Output:

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

Visualizza i log Docker in Amazon ECS

Puoi visualizzare i flussi STDOUT e STDERR relativi a un container mediante il comando docker logs. In questo esempio, i log sono visualizzati per il container dc7240fe892a e reindirizzati tramite il comando head per brevità. Per ulteriori informazioni, consulta la sezione relativa al comando docker logs nella documentazione Docker.

Nota

I log di Docker sono disponibili nell'istanza di container solo se usi il driver di log json predefinito. Se hai configurato le tue attività per utilizzare il driver di awslogs registro, i log del contenitore sono disponibili in Logs. CloudWatch Per ulteriori informazioni, consulta Invia i log di Amazon ECS a CloudWatch .

docker logs dc7240fe892a | head

Output:

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"

Ispeziona i contenitori Docker in Amazon ECS

Se disponi dell'ID Docker di un container, puoi ispezionarlo mediante il comando docker inspect. L'ispezione dei container fornisce le informazioni più dettagliate sull'ambiente in cui è stato avviato un container. Per ulteriori informazioni, consulta la sezione relativa al comando docker inspect nella documentazione Docker.

docker inspect dc7240fe892a

Output:

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