- Docker के साथ application deploy करके service चला रहे Linux server पर कभी-कभी disk capacity कम होने का संदेश दिखाई देता है
- भले ही वास्तविक application द्वारा बनाए और संग्रहीत किए गए data तथा logs का आकार बड़ा न हो, फिर भी पूरे system storage की capacity Full हो सकती है
- Docker इस्तेमाल करते समय storage capacity कम पड़ने के कारणों में से एक है 'Docker container logs'
- Docker logging driver और log location
- logging driver: Docker में एक logging mechanism शामिल होता है जो चल रहे containers और services से जानकारी प्राप्त करने में मदद करता है; इसे ही logging driver कहते हैं
docker logs कमांड: चल रहे container द्वारा रिकॉर्ड की गई जानकारी दिखाता है
docker service logs कमांड: service में शामिल सभी containers द्वारा रिकॉर्ड की गई जानकारी दिखाता है
- Docker, सभी container logs के standard output(stdout) या standard error(stderr) को capture करके JSON format में file में रिकॉर्ड करने वाले
json-file logging driver का उपयोग करता है
docker run या docker-compose up कमांड से Docker container चलाने पर /var/lib/docker/containers/[Container-ID]/[Container-ID]-json.log file बनती है और logs रिकॉर्ड होते हैं
json-file logging driver log rotation नहीं करता
- इस logging driver से संग्रहीत log files, यदि container बहुत अधिक output उत्पन्न करता है, तो काफी disk space इस्तेमाल कर सकती हैं, और इससे disk space समाप्त हो सकता है
- Docker container log size कम करना
docker rm या docker-compose down कमांड चलाने पर Docker container हट जाता है, और /var/lib/docker/containers के अंतर्गत [Container-ID] से संबंधित directory भी हट जाती है
- इससे बहुत अधिक disk space घेरने वाली
[Container-ID]-json.log file भी साथ में हट जाती है, और पूरे system की disk space फिर से उपलब्ध हो जाती है
truncate -s 0 <json-log-file> कमांड चलाने पर log file का size 0 किया जा सकता है
- log rotation सेट करना
- log file का maximum size(
max-size) और maximum file count(max-file) निर्धारित करके log rotation सक्रिय किया जा सकता है
- file size तय की गई maximum value तक पहुंचने पर उसे नई file से बदल दिया जाता है, और पुरानी files
...-json.log.1, ...-json.log.2 के रूप में maximum count तक बनती हैं
- इसे पार करने पर सबसे पुरानी file हटा दी जाती है, जिससे Docker container की log file का आकार अनंत तक बढ़ने से रोका जा सकता है
अभी कोई टिप्पणी नहीं है.