- Docker ile uygulama dağıtıp hizmet işleten Linux sunucularında bazen disk alanı yetersizliği mesajı görülebilir
- Uygulamanın gerçekten oluşturup depoladığı veri ve log hacmi büyük olmasa bile sistemin toplam depolama alanı tamamen dolabilir
- Docker kullanırken depolama alanı yetersizliğinin nedenlerinden biri
Docker container loglarıdır
- Docker logging driver'ı ve log konumu
- Logging driver: Docker, çalışan container'lar ve servislerden bilgi almayı kolaylaştıran bir loglama mekanizması içerir; buna logging driver denir
docker logs komutu: Çalışan container'ın kaydettiği bilgileri gösterir
docker service logs komutu: Servise katılan tüm container'ların kaydettiği bilgileri gösterir
- Docker, tüm container loglarının standart çıktısını (stdout) ve standart hatasını (stderr) yakalayıp JSON biçiminde dosyaya yazan
json-file logging driver'ını kullanır
docker run veya docker-compose up komutuyla Docker container'ı çalıştırıldığında /var/lib/docker/containers/[Container-ID]/[Container-ID]-json.log dosyası oluşturulur ve loglar buraya yazılır
json-file logging driver'ı log rotasyonu yapmaz
- Bu logging driver ile kaydedilen log dosyaları, çok fazla çıktı üreten container'larda ciddi miktarda disk alanı kullanabilir ve bunun sonucunda disk alanı tükenebilir
- Docker container log boyutunu küçültme
docker rm veya docker-compose down komutu çalıştırıldığında Docker container'ı silinir ve /var/lib/docker/containers altındaki ilgili [Container-ID] dizini de kaldırılır
- Böylece çok fazla disk alanı kaplayan
[Container-ID]-json.log dosyası da birlikte silinir ve sistem genelinde disk alanı açılır
truncate -s 0 <json-log-file> komutunu çalıştırarak log dosyasının boyutu 0 yapılabilir
- Log rotasyonu ayarlama
- Log dosyasının en büyük boyutu (
max-size) ve en fazla dosya sayısı (max-file) belirtilerek log rotasyonu etkinleştirilebilir
- Dosya boyutu belirlenen üst sınıra ulaştığında yeni bir dosyaya geçilir; mevcut dosyalar
...-json.log.1, ...-json.log.2 şeklinde en fazla belirtilen sayıya kadar oluşturulur
- Bu sayı aşıldığında en eski dosya silinir; böylece Docker container log dosyalarının sonsuza kadar büyümesi önlenir
Henüz yorum yok.