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.
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:
Das sagt aus, dass das Logfile immer weiter wachsen darf.
Das will ich aber nicht, darum erweitere ich mein Compose File:
services:
ytuner:
image: localhost/ytuner:1.2.6
container_name: ytuner
restart: always
networks:
vlan:
ipv4_address: 10.10.20.20
volumes:
- ./ytuner:/app/host-shared
- ./ytuner/ytuner.ini:/app/ytuner.ini
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
networks:
vlan:
name: ipvlan_templ
external: true
Display More
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:
"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.