So verwendet man Docker-Logs richtig
(insight.infograb.net)- Beim Betrieb von Services auf Linux-Servern, auf denen Anwendungen mit Docker bereitgestellt werden, kann es vorkommen, dass eine Meldung über zu wenig Speicherplatz auf der Festplatte erscheint
- Selbst wenn die von der eigentlichen Anwendung erzeugten und gespeicherten Daten sowie die Logs nicht sehr groß sind, kann der gesamte Systemspeicher voll werden
- Eine der Ursachen für Speicherplatzmangel bei der Verwendung von Docker sind die „Docker-Container-Logs“
- Docker-Logging-Treiber und Speicherort der Logs
- Logging-Treiber: Docker enthält einen Logging-Mechanismus, der dabei hilft, Informationen aus laufenden Containern und Services zu erhalten; das ist der Logging-Treiber
- Befehl
docker logs: Zeigt die von einem laufenden Container aufgezeichneten Informationen an - Befehl
docker service logs: Zeigt die von allen Containern aufgezeichneten Informationen an, die an einem Service beteiligt sind - Docker verwendet den Logging-Treiber
json-file, der die Standardausgabe (stdout) oder Standardfehlerausgabe (stderr) aller Container-Logs erfasst und in eine Datei im JSON-Format schreibt - Wenn ein Docker-Container mit dem Befehl
docker runoderdocker-compose upgestartet wird, wird die Datei/var/lib/docker/containers/[Container-ID]/[Container-ID]-json.logerstellt und das Log darin gespeichert - Der Logging-Treiber
json-fileführt keine Log-Rotation durch- Wenn ein Container viele Ausgaben erzeugt, können die mit diesem Logging-Treiber gespeicherten Log-Dateien erheblichen Festplattenspeicher belegen, was schließlich zum Ausgehen des Speicherplatzes führen kann
- Größe von Docker-Container-Logs verringern
- Wird der Befehl
docker rmoderdocker-compose downausgeführt, wird der Docker-Container gelöscht, ebenso das Verzeichnis für die jeweilige[Container-ID]unter/var/lib/docker/containers- Dadurch wird auch die Datei
[Container-ID]-json.log, die viel Speicherplatz belegt hat, zusammen gelöscht und es wird wieder Festplattenspeicher auf Systemebene frei
- Dadurch wird auch die Datei
- Mit dem Befehl
truncate -s 0 <json-log-file>kann die Größe der Log-Datei auf 0 gesetzt werden
- Wird der Befehl
- Log-Rotation konfigurieren
- Durch das Festlegen der maximalen Log-Dateigröße (
max-size) und der maximalen Anzahl von Dateien (max-file) kann die Log-Rotation aktiviert werden - Wenn die Dateigröße den eingestellten Maximalwert erreicht, wird auf eine neue Datei gewechselt; bestehende Dateien werden als
...-json.log.1,...-json.log.2usw. bis zur festgelegten Höchstzahl angelegt - Wird diese überschritten, wird die älteste Datei entfernt, sodass die Größe der Docker-Container-Log-Dateien nicht unbegrenzt anwächst
- Durch das Festlegen der maximalen Log-Dateigröße (
Noch keine Kommentare.