Container und Volumes

Docker Logo (Wikipedia/dotCloud Inc. Apache Licence 2.0)
Docker Logo (Wikipedia/dotCloud Inc. Apache Licence 2.0)

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

Datenverzeichnis des DokuWiki Volumes
Datenverzeichnis des DokuWiki Volumes

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.

Schreibe einen Kommentar

Cookie Consent Banner von Real Cookie Banner