Diagnostik Docker di Amazon ECS - Amazon Elastic Container Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Diagnostik Docker di Amazon ECS

Docker menyediakan beberapa alat diagnostik yang membantu Anda memecahkan masalah dengan kontainer dan tugas Anda. Untuk informasi lebih lanjut tentang semua pemanfaatan baris perintah Docker yang sudah tersedia, lihat topik Baris Perintah Docker dalam dokumentasi Docker. Anda dapat mengakses utilitas baris perintah Docker dengan menghubungkan ke instans kontainer menggunakan SSH.

Kode keluar yang Docker kontainer laporkan juga dapat memberikan beberapa informasi diagnostik (misalnya, kode keluar 137 berarti bahwa kontainer menerima sinyal SIGKILL). Untuk informasi selengkapnya, lihat Status Keluar dalam dokumentasi Docker.

Daftar kontainer Docker di Amazon ECS

Anda dapat menggunakan perintah docker ps pada instans kontainer Anda untuk membuat daftar pada kontainer yang berjalan. Dalam contoh berikut, hanya agen penampung Amazon ECS yang berjalan. Untuk informasi selengkapnya, lihat docker ps di dokumentasi 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

Anda dapat menggunakan perintah docker ps -a untuk melihat semua kontainer (bahkan berhenti atau menghancurkan kontainer). Hal ini sangat membantu untuk membuat daftar kontainer yang tiba-tiba berhenti. Pada contoh berikut, kontainer f7f1f8a7a245 keluar 9 detik yang lalu, sehingga tidak muncul dalam output docker ps tanpa bendera -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

Lihat Log Docker di Amazon ECS

Anda dapat melihat STDOUT dan mengalirkan STDERR untuk kontainer dengan perintah docker logs. Pada contoh ini, catatan ditampilkan untuk kontainer dc7240fe892a dan disalurkan melalui perintah head untuk ringkasnya. Untuk informasi selengkapnya, kunjungi log docker dalam dokumentasi Docker.

catatan

Catatan Docker hanya tersedia pada instans kontainer jika Anda menggunakan log driver json default. Jika Anda telah mengonfigurasi tugas Anda untuk menggunakan driver awslogs log, maka log kontainer Anda tersedia di CloudWatch Log. Untuk informasi selengkapnya, lihat Kirim log Amazon ECS ke 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"

Periksa Kontainer Docker di Amazon ECS

Jika Anda memiliki ID Docker dari sebuah kontainer, Anda dapat memeriksanya dengan perintah docker inspect. Memeriksa kontainer memberikan pandangan paling detail tentang lingkungan tempat kontainer telah diluncurkan. Untuk informasi selengkapnya, lihat pemeriksaan docker dalam dokumentasi 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", ...