Datenspeicherung
Bei der Installation von Docker haben wir einen ersten, ganz einfachen Container gestartet, der keine Daten im Dateisystem speichert. Dies wäre auch nicht gut, da nach Ende des Containers alle darin liegenden Daten weg sind, will ich dir mit den Volumes jetzt zeigen, wie die Daten eines Datenbankcontainers erhalten bleiben.
Volumes
Ein Volume ist einfach gesagt, die Möglichkeit eine Datei (oder ein ganzes Verzeichnis) in das Dateisystem des Hosts abzubilden, wo sie nach Beendigung des Containers erhalten bleibt.
Hier mal ein Beispiel aus der docker-compose.yml Datei von DokuWiki
volumes:
- /opt/dokuwiki:/config
Bei DokuWiki wäre es fatal, wenn nach Beendigung des Containers alle Beiträge und Einstellungen verloren gingen.
Deshalb wird über die obige Sektion Das Verzeichnis /config im Container auf /opt/dokuwiki in das Dateisystem des Hosts (also deines Raspberry Pi) gemapped. Ich zeig dir kurz, wie das bei mir aussieht
Diese Dateien speichert DokuWiki innerhalb des Containers. Durch das Volume werden sie nach aussen in das Dateisystem von Raspberry Pi OS geführt.
Ein Volume kann nicht nur ein gesamtes Verzeichnis nach aussen führen, sondern auch einzelne Dateien. Dies wird meistens mit Konfigurationsdateien unter /etc im Container gemacht, so dass du diese bearbeiten kannst, ohne Zugriff auf das gesamte Verzeichnis zu haben.
Speicherort
Wohin du im Dateisystem das Volume mappst, ist ganzz allein dir überlassen, ich benutze in der Regel das /opt
Verzeichnis dafür. Du kannst das natürlich im /home
Verzeichnis deines Pi-Users anlegen oder für die Docker-Volumes einen eigenen Benutzeraccount erstellen. Wichtig ist nur, dass du das Verzeichnis mit in deine Backup-Strategie aufnimmst.
Container verschieben
Sollte der Fall eintreten, dass du den Container auf einem anderen Raspberry Pi betreiben möchtest, musst du nur die Daten aus dem gemappten Verzeichnis auf den neuen Pi kopieren und dann mit docker-compose den Container dort erzeugen.