GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Log Docker:Apa Itu dan Bagaimana Menggunakannya (dengan Contoh)

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.


Docker
  1. Cara Menggunakan Perintah 'cat' dan 'tac' dengan Contoh di Linux

  2. Apa itu Doker? Pelajari Cara Menggunakan Wadah – Dijelaskan dengan Contoh

  3. Bagaimana dan Mengapa Menggunakan Host Docker Jarak Jauh

  1. Cara Menggunakan Pipes dan Named Pipes di Linux (dengan Contoh)

  2. Apa Itu Volume Docker, dan Bagaimana Anda Menggunakannya?

  3. Cara Menginstal dan Menggunakan Docker Compose di CentOS

  1. Tutorial Tmux:Cara Menginstal dan Menggunakan dengan Contoh Perintah

  2. Apa itu Mode SELinux dan cara mengaturnya

  3. Cara menggunakan opsi --since dengan perintah docker logs