Adakah cara agar saya dapat melihat log wadah yang telah keluar?
Saya bisa mendapatkan id penampung dari penampung yang sudah keluar menggunakan docker ps -atetapi saya ingin tahu apa yang terjadi saat itu berjalan.
Adakah cara agar saya dapat melihat log wadah yang telah keluar?
Saya bisa mendapatkan id penampung dari penampung yang sudah keluar menggunakan docker ps -atetapi saya ingin tahu apa yang terjadi saat itu berjalan.
Jawaban:
Gunakan docker logs. Ini juga berfungsi untuk container yang dihentikan dan menangkap seluruh aliran STDOUT dan STDERR dari proses utama container:
$ docker run -d --name test debian echo "Hello World"
02a279c37d5533ecde76976d7f9d1ca986b5e3ec03fac31a38e3dbed5ea65def
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
49daa9d41a24 debian "echo test" 2 minutes ago Exited (0) 2 minutes ago test
$ docker logs -t test
2016-04-16T15:47:58.988748693Z Hello World
stack=s1 && c=$(task_id=$(docker stack ps "$stack" --filter desired-state=shutdown | tail -n +2 | head -n 1 | awk '{print $1}') && docker inspect --format '{{.Status.ContainerStatus.ContainerID}}' "$task_id") && docker logs "$c"Nama tumpukan ditentukan di awal perintah.
docker logs --tail=50 <container id> untuk lima puluh baris terakhir - berguna bila penampung Anda telah berjalan lama.
Untuk langsung melihat logfile dari kontainer yang keluar dalam waktu kurang, gulir ke akhir file, saya menggunakan:
docker inspect $1 | grep 'LogPath' | sed -n "s/^.*\(\/var.*\)\",$/\1/p" | xargs sudo less +G
dijalankan sebagai ./viewLogs.sh CONTAINERNAME
Metode ini memiliki keuntungan atas docker logspendekatan berbasis, yaitu file dibuka secara langsung, bukan di-streaming.
sudo diperlukan, karena LogPath / File biasanya dimiliki oleh root