- Saat mengoperasikan layanan di server Linux yang menjalankan aplikasi yang dideploy dengan Docker, kadang muncul pesan kekurangan kapasitas disk
- Meskipun data dan log yang dihasilkan serta disimpan oleh aplikasi sebenarnya tidak banyak, kapasitas storage seluruh sistem bisa menjadi penuh
- Salah satu penyebab kekurangan kapasitas storage saat menggunakan Docker adalah 'log container Docker'
- Driver logging Docker dan lokasi log
- Driver logging: Docker menyertakan mekanisme logging yang membantu memperoleh informasi dari container dan layanan yang sedang berjalan; inilah yang disebut driver logging
- Perintah
docker logs: menampilkan informasi yang dicatat oleh container yang sedang berjalan
- Perintah
docker service logs: menampilkan informasi yang dicatat oleh semua container yang berpartisipasi dalam layanan
- Docker menggunakan driver logging
json-file, yang menangkap standard output (stdout) atau standard error (stderr) dari semua log container dan mencatatnya ke file dalam format JSON
- Jika menjalankan container Docker dengan perintah
docker run atau docker-compose up, maka file /var/lib/docker/containers/[Container-ID]/[Container-ID]-json.log akan dibuat dan log dicatat di sana
- Driver logging
json-file tidak melakukan rotasi log
- File log yang disimpan dengan driver logging ini dapat memakai ruang disk yang cukup besar jika container menghasilkan output dalam jumlah banyak, sehingga ruang disk bisa habis
- Mengurangi ukuran log container Docker
- Jika menjalankan perintah
docker rm atau docker-compose down, container Docker akan dihapus, dan direktori yang sesuai dengan [Container-ID] di bawah /var/lib/docker/containers juga ikut dihapus
- Dengan begitu, file
[Container-ID]-json.log yang memakan banyak ruang disk juga ikut terhapus sehingga ruang disk sistem bisa dipulihkan
- Menjalankan perintah
truncate -s 0 <json-log-file> dapat membuat ukuran file log menjadi 0
- Mengatur rotasi log
- Rotasi log dapat diaktifkan dengan menentukan ukuran maksimum file (
max-size) dan jumlah maksimum file (max-file)
- Ketika ukuran file mencapai nilai maksimum yang ditetapkan, file akan diganti dengan file baru, dan file lama akan dibuat sebagai
...-json.log.1, ...-json.log.2 hingga jumlah maksimum file
- Jika terlampaui, file yang paling lama akan dihapus sehingga ukuran file log container Docker tidak terus membesar tanpa batas
Belum ada komentar.