Mengelola Log Docker untuk Debugging Kontainer
Container berjalan seperti kotak hitam โ Anda tidak bisa langsung melihat apa yang terjadi di dalamnya. Di sinilah docker logs berperan. Perintah ini mengeluarkan semua output stdout dan stderr dari container, tanpa perlu attach atau exec ke dalamnya.
Panduan ini cocok untuk pengguna Nusa Cloud VPS yang sudah menginstal Docker (lihat Instalasi Docker di Ubuntu) dan perlu melakukan debugging.
Prasyaratโ
- Server Nusa Cloud VPS dengan Docker Engine terinstal
- Container yang sedang berjalan
Catatan: Perintah
docker logstersedia di semua versi Docker Engine. Tidak ada perbedaan sintaks signifikan antar versi โ panduan ini berlaku untuk Docker Engine 19.x ke atas.
1. Melihat Log Containerโ
docker logs <container_id>
Cari container ID dengan:
docker container ls
Contoh output:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ea45fa0f96ac nginx "/docker-entrypoint.โฆ" 2 minutes ago Up 2 minutes 0.0.0.0:80->80/tcp web
Maka:
docker logs ea45fa0f96ac
Output menampilkan semua log dari container sejak pertama kali dijalankan.
2. Streaming Log Real-timeโ
Gunakan flag -f atau --follow untuk melihat log secara langsung:
docker logs -f <container_id>
Berguna saat:
- Memantau proses startup
- Melihat request HTTP masuk ke web server
- Debugging aplikasi yang sedang aktif
Tekan Ctrl + C untuk berhenti.
3. Filter Log Berdasarkan Waktuโ
Lihat N Baris Terakhirโ
docker logs --tail 50 <container_id>
Hanya menampilkan 50 baris terakhir โ ideal saat log sudah sangat panjang.
Log Sejak Waktu Tertentuโ
docker logs --since="2026-06-06T10:00:00" <container_id>
Bisa pakai format relatif:
docker logs --since 30m <container_id>
Log Sampai Waktu Tertentuโ
docker logs --until="2026-06-06T12:00:00" <container_id>
Kombinasi Filterโ
docker logs --since 2h --until 1h --tail 100 <container_id>
4. Tambahkan Timestampโ
docker logs --timestamps <container_id>
Setiap baris log akan diberi prefix timestamp ISO 8601. Sangat membantu saat mencocokkan log dengan kejadian di sistem.
5. Membaca Log dari Container Tertentuโ
Gunakan nama container sebagai alternatif ID:
docker logs --tail 20 web
Cara ini lebih mudah diingat dibanding menghafal container ID.
6. Log Driver dan Konfigurasi Lanjutanโ
Secara default, Docker menggunakan json-file logging driver. Log disimpan di /var/lib/docker/containers/<id>/<id>-json.log.
Untuk membatasi ukuran log agar tidak memenuhi disk:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
Konfigurasi di atas membatasi setiap file log maksimal 10 MB dan menyimpan maksimal 3 file rotasi. Terapkan lewat file /etc/docker/daemon.json, lalu restart Docker:
sudo systemctl restart docker
โ ๏ธ Warning: Restart Docker akan menghentikan semua container yang sedang berjalan.
Verifikasiโ
# Cek container ID
docker container ls
# Lihat 10 baris terakhir
docker logs --tail 10 <container_id>
# Pastikan tidak ada error
echo $?
Jika output 0, perintah berhasil.
Kesimpulanโ
docker logs adalah tools diagnostik utama untuk container. Kuasai flag --tail, --since, --until, dan --follow โ ini mencakup 90% kebutuhan debugging sehari-hari.
