Docker Housekeeping

  • Ich habe das Ugreen NAS neu bekommen und schaue mir gerade mal einiges an.
    Gedanken dazu schriebe ich einfach mal in das Forum. Ich hoffe das ist ok.
    Das erste Thema was ich mir bei Docker anschaue ist der Speicherort des Overlay Filesystems.
    Da legt Docker alles mögliche ab: Images, Volumes, transiente Daten von Containern, Logfiles, ...
    Und das ist per default "/var/lib/docker", was eine Katastrophe ist.
    Das liegt daran, dass das in der Systempartition liegt, die meist recht klein ist.
    Und das wird von Docker sehr schnell vollgeschrieben.
    Und ein Linux mit 0B freiem Speicher auf der Systempartition mach viel Spass.
    Das kann ich aus Erfahrung sagen.
    Aber das hat Ugreen schon mal richtig gemacht.
    Sie haben in der "/etc/docker/daemon.json" einen Pfad definiert.

    Code
    {
            "data-root": "/volume1/@docker"
    }

    Eine weitere "Herausforderung" sind die Logfiles. (Protocol, oder "docker logs")
    Sie sind zwar transient und verschwinden, wenn der Container gelöscht wird.
    Aber ein lang laufender Container, der gesprächig ist, kann da viel Speicher belegen.
    Ein Elasticsearch hatte es bei mir mal auf 300GB gebracht.
    Darum ist es eine gute Idee die Logfiles etwas einzuhegen. Docker kann das.

    So sieht ein "docker inspect" aus, ohne Begrenzung der Logfiles. Auszug aus dem Inspect:

    Code
                "ContainerIDFile": "",
                "LogConfig": {
                    "Type": "json-file",
                    "Config": {}
                },

    Das sagt aus, dass das Logfile immer weiter wachsen darf.
    Das will ich aber nicht, darum erweitere ich mein Compose File:

    In dem Abschnitt "logging" ist jetzt definiert, dass es eine Rotation mit drei Files gibt, die jeweils 10m (Megabyte) groß sein sollen.
    Man kann die Rotation auch weglassen, aber dann wird das Logfile gelöscht, wenn es zu groß wird und alle Logs sind weg.
    Mit einer Rotation hat man halt immer noch ein Backlog.

    Das spiegelt sich dann auch in einem Inspect wieder:

    Code
                "ContainerIDFile": "",
                "LogConfig": {
                    "Type": "json-file",
                    "Config": {
                        "max-file": "3",
                        "max-size": "10m"
                    }
                },

    Speicher auf einem NAS ist wertvoll, darum sollte er nicht an überbordende Logfiles verschenkt werden.

    Noch eine Anmerkung. Sollte irgendwelche Informationen aus meinen Postings in einem HowTo oder ähnlichem hier auftauchen, habe ich nichts dagegen, würde mich sogar freuen. Und ich kann garantieren, dass ich es nicht nötig habe in irgendwelchen anderen Foren abzuschreiben.

    Edited once, last by wasawasa (February 9, 2025 at 2:55 PM).

  • This threads contains one more post that have been hidden for guests.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!