Dalam artikel ini, kami akan menunjukkan kepada Anda semua yang perlu Anda ketahui tentang log Docker dan cara bekerja dengannya.
Hidup akan jauh lebih sederhana jika aplikasi yang berjalan di dalam wadah Docker selalu berperilaku dengan benar. Saat segala sesuatunya menjadi salah, Anda memerlukan informasi diagnostik untuk mengetahui bagaimana dan mengapa.
Jika Anda adalah administrator sistem dan bertanggung jawab untuk membangun dan mengelola aplikasi dalam container, docker logging adalah salah satu yang paling penting bagi Anda. Menangani log adalah salah satu cara terbaik untuk membantu mengungkap kesalahan, membantu proses debug, dan mengoptimalkan kinerja aplikasi Anda.
Jadi mari selami logging Docker dan file log-nya.
Apa Itu Log Docker
Pertama, Anda perlu memahami bagaimana log dibuat.
Singkatnya, Log Docker adalah keluaran konsol dari container yang sedang berjalan . Mereka memberikan stdout
(output standar) dan stderr
(kesalahan standar) aliran proses yang berjalan di dalam wadah. Dalam sebuah wadah, Docker melihat stdout
dan stderr
dan mengumpulkan output dari aliran, dan ini adalah sumber dari log kontainer.
Masuk di Docker tidak sama dengan masuk di tempat lain. Di Docker, semuanya ditulis ke stdout
dan stderr
stream secara implisit dikirim ke driver logging, yang menyediakan mekanisme untuk mengakses stream ini dan mengirim log ke file. Driver default untuk log Docker adalah “json-file”, yang menulis log ke file lokal di host Docker dalam format JSON.
Setiap log yang disimpan dalam penampung akan dihapus saat dihentikan atau dimatikan.
Contoh di bawah ini menunjukkan log JSON yang dibuat menggunakan driver file json:
{"log":"Adding password for user webdav\n","stream":"stderr","time":"2021-08-01T15:58:05.329724917Z"}
Anda dapat menggunakan perintah berikut untuk menemukan driver logging default saat ini:
docker info --format '{{.LoggingDriver}}'
json-file
Di Mana Log Docker Disimpan
Jika Anda menggunakan format log default yaitu JSON, log container dapat ditemukan di /var/lib/docker/containers/
direktori pada host Linux Docker.
/var/lib/docker/containers/<container-id>/<container-id>-json.log
Di jalur yang ditunjukkan di atas, <container-id>
adalah id dari wadah yang sedang berjalan. Jika Anda tidak yakin id yang mana terkait dengan container mana, Anda dapat menjalankan docker container ls
perintah untuk membuat daftar semua container yang sedang berjalan.
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
99e9b6f4b1a3 jbbodart/alpine-nginx-webdav "/bin/sh -c '/entryp…" 51 minutes ago Up 51 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp webdav
Cara Melihat Log Docker
Katakanlah Anda menjalankan sebuah container dan ingin mengakses log Docker untuk container ini. Bagaimana Anda bisa menyelesaikan tugas ini?
Pertama, Anda dapat menggunakan perintah berikut untuk memeriksa container yang sedang berjalan:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
99e9b6f4b1a3 jbbodart/alpine-nginx-webdav "/bin/sh -c '/entryp…" 58 minutes ago Up 58 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp webdav
Perintah ini mencetak daftar container yang sedang berjalan. Dalam kasus kami, parameter terpenting adalah CONTAINER ID , yang akan kita gunakan di langkah selanjutnya.
Sekarang setelah Anda yakin penampung Anda berjalan, mari gunakan ID PENAMPUNG untuk melihat semua lognya.
Melihat Log Docker
Untuk menanyakan log kontainer, gunakan docker logs
perintah. Ini adalah perintah yang menampilkan semua informasi yang dicatat oleh container yang sedang berjalan. Dengan docker logs CONTAINER_ID
, Anda dapat melihat semua log yang disiarkan oleh wadah tertentu yang diidentifikasi oleh ID unik.
docker logs 99e9b6f4b1a3
172.17.0.1 - webdav [01/Aug/2021:18:38:39 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "http://localhost/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
2021/08/01 18:39:09 [info] 10#10: *3 client 172.17.0.1 closed keepalive connection
172.17.0.1 - webdav [01/Aug/2021:18:39:09 +0000] "PUT /docker-logs.png HTTP/1.1" 201 25 "-" "curl/7.78.0"
Cara Mengikuti Log Kontainer
Meskipun ini akan menunjukkan kepada Anda log, itu tidak akan memungkinkan Anda untuk melihat keluaran log berkelanjutan. Menggunakan -f
flag akan mengikuti log kontainer Docker.
docker logs -f 99e9b6f4b1a3
Hanya Tampilkan Baris Terbaru
Dalam beberapa kasus, Anda ingin memverifikasi dengan cepat hanya 10 baris log terbaru untuk penampung Anda. Anda dapat menggunakan --tail
opsi untuk menentukan jumlah log yang ingin Anda lihat.
docker logs --tail 10 99e9b6f4b1a3
Melihat Log Sejak Tanggal Tertentu
Saat Anda memeriksa log Docker, Anda sering ingin membatasi output ke sejumlah baris tertentu, agar tidak dibanjiri informasi.
Jika Anda ingin melihat log dari titik waktu tertentu hingga sekarang, --since
opsi membantu tugas ini.
Misalnya, untuk melihat log kontainer sejak 20 menit, tulis:
docker logs --since 20m 99e9b6f4b1a3
Anda juga dapat menulis format tanggal asalkan disediakan dalam format ISO:
docker logs --since 2021-07-19T10:00:00 99e9b6f4b1a3
Melihat Log Hingga Tanggal Tertentu
Untuk melihat log hingga tanggal tertentu, gunakan --until
pilihan dengan tanggal atau durasi.
docker logs --until 20m 99e9b6f4b1a3
Atau Anda juga dapat memberikan format tanggal seperti yang Anda lakukan sebelumnya untuk --since
pilihan.
docker logs --until
2021-07-19T10:00:00 99e9b6f4b1a3
Kesimpulan
Log Docker membantu Anda men-debug dan memecahkan masalah lebih cepat. Dalam tutorial ini, Anda mempelajari apa itu dan bagaimana mereka dapat diperiksa dan menggunakan opsi untuk memantaunya.
Jika Anda memiliki pertanyaan atau masukan, jangan ragu untuk memberikan komentar.