Diagnóstico do Docker no Amazon ECS
O Docker oferece várias ferramentas de diagnóstico que ajudam a solucionar problemas com os contêineres e as tarefas. Para obter mais informações sobre todos os utilitários de linha de comando do Docker, consulte o tópico Referência da linha de comando do Docker
Os códigos de saída que os contêineres do Docker relatam também podem fornecer algumas informações de diagnóstico (por exemplo, código de saída 137 significa que o contêiner recebeu um sinal SIGKILL
). Para obter mais informações, consulte Status de saída
Listagem de contêineres do Docker no Amazon ECS
É possível usar o comando docker ps na instância de contêiner para listar os contêineres em execução. No exemplo a seguir, somente o agente de contêiner do Amazon ECS está em execução. Para obter mais informações, consulte docker ps
docker ps
Saída:
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
É possível usar o comando docker ps -a para ver todos os contêineres (até mesmo contêineres parados ou encerrados). Isso é útil para listar contêineres que estejam parando inesperadamente. No exemplo a seguir, o contêiner f7f1f8a7a245
saiu há 9 segundos. Portanto, ele não aparece em uma saída docker ps sem o sinalizador -a
.
docker ps -a
Saída:
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
Visualização de logs do Docker no Amazon ECS
É possível visualizar os fluxos STDOUT
e STDERR
para um contêiner com o comando docker logs. Neste exemplo, os logs são exibidos para o contêiner dc7240fe892a
e direcionados por meio do comando head para agilizar. Para obter mais informações, vá até docker logs
nota
Os logs do Docker estarão disponíveis na instância do contêiner apenas se você estiver usando o driver de logs json
padrão. Se você tiver configurado as tarefas para usar o driver de logs awslogs
, os logs do contêiner estarão disponíveis no CloudWatch Logs. Para ter mais informações, consulte Envio de logs do Amazon ECS para o CloudWatch .
docker logs
dc7240fe892a
| head
Saída:
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"
Inspeção de contêineres do Docker no Amazon ECS
Caso tenha o ID do Docker de um contêiner, você pode inspecioná-lo com o comando docker inspect. A inspeção de contêineres apresenta a visão mais detalhada do ambiente no qual um contêiner foi ativado. Para obter mais informações, consulte docker inspect
docker inspect
dc7240fe892a
Saída:
[{
"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",
...