Lesedauer 2 Minuten

Bei einigen Docker-Installationen kann es vorkommen, daß der Overlay2-Ordner mehrere GB groß ist und täglich immer weiter wächst. Dieser Artikel zeigt, wie man das Problem eingrenzen und beseitigen kann.

Wozu benötigt Docker den Overlay2-Ordner?

Docker Overlay2 ist eine Overlay-Technologie, die in Docker 17.07 und höher verwendet wird. Es handelt sich um ein Verzeichnisbaum-Format, das zum Speichern von Container-Daten verwendet wird.

Ein Overlay-Verzeichnisbaum ist ein Verzeichnisbaum, der aus mehreren Schichten besteht. Jede Schicht enthält eine bestimmte Version einer Datei oder eines Verzeichnisses. Wenn eine Datei oder ein Verzeichnis geändert wird, wird die neue Version in einer neuen Schicht gespeichert.

D.h alle Dateisystem-Änderungen, die nicht auf gemappte, externe Volumes persistent gespeichert werden, landen in der Overlay2 Verzeichnisstruktur.

Wenn ein Container gestartet wird, wird das Overlay2-Verzeichnisbaum erstellt und die Daten aus dem Image in das Overlay2-Verzeichnisbaum kopiert. Wenn der Container beendet wird, wird das Overlay2-Verzeichnisbaum gelöscht.

Warum wird der Docker Overlay2 Ordner immer größer?

Bei lang laufenden Docker-Containern sammeln sich in der Overlay2 Struktur temporäre Dateien und meist große Log-Dateien. Wird ein Container nicht ordnungsgemäß gestoppt, können im Overlay2-Ordner auch Dateien zurückbleiben, die sonst gelöscht werden.

Docker: Overlay2 Ordner aufräumen

Um die Größe des Overlay2-Ordners unserer Docker-Installation zu prüfen gehen wir wie folgt vor:

Der folgende Befehlt zeigt den Inhalt der kompletten Overlay2-Struktur an und sortiert die größten Dateien nach unten:

In der Regel sind die größten Dateien Apache error.log– oder access.log-Files, die man getrost entfernen kann.

VORSICHT:
Sollten die gefundenen, großen Dateien nicht auf .log enden sollte man sich reiflich überlegen ob diese Dateien gelöscht werden können, ohne den Container zu beschädigen. Daher sollte das folgende Script nur Dateien enthalten, die sicher gelöscht werden können.

In unserem Beispiel löscht das Script alle error.log und access.log Files:

Wenn wir das Script täglich per Cron-Job starten, bleibt unser Overlay2-Ordner und somit auch unserer Docker-Installation schön schlank.

 

Hat Dir der Beitrag gefallen?

Wenn Du Fragen oder Anmerkungen zu diesem Beitrag hast, dann starte einen Kommentar. DANKE für Dein Feedback!