Docker Datenvolumen
Docker Datenvolumen
Warum Volumes?
Daten die innerhalb eines Containers gespeichert werden, gehen beim entfernen des Containers verloren.
Daten die am Host liegen sind performanter als Daten innerhalb eines Containers.
Container sind dazu da sie zu entfernen, reproduzieren und zu übertragen. Docker ist eine Lösung um seine Applikation überall und jederzeit auszuführen. Der Aufbau soll so gehalten werden, dass wir Container übertragen und upgraden können ohne dabei Daten zu verlieren oder auf Probleme zu stoßen.
Volume Commands:
ls | Wir können uns die vorhandenen generierten Volumes mit docker volume ls anzeigen lassen. Wenn wird Container neu generieren werden neue Volumes generiert - auch wenn die zuvor generierten Volumes persistent gespeichert sind.
create | ein Volume mit Namen erstellen e.g. docker volume create customdata - Volumen können auch direkt über run definiert werden e.g. -v volumename:/usr/src/app ..
inspect | detaillierte Informationen über das Volume e.g. Pfad der Daten
rm | ein Volume entfernen - zuerst versichern das kein Container das Volume mehr benötigt
prune | entferne alle nicht verwendeten Volumes
Der kleine Unterschied zwischen bind mount und Docker volume:
bind mount: Kann auf jeglichen Ordner einer Host Maschine zeigen. Der User definiert die Struktur und der User ist verantwortlich für dessen Korrektheit und der Existenz des Ordners auf der jeweiligen Host Maschine.
volume: Docker Volumes sind teil der Docker Verzeichnisstruktur und werden somit von Docker verwaltet.
Wichtig!! Auch wenn die Volumes mit einer namentlichen Bezeichnung wieder zugeteilt werden können, kann es durch Problem am Host System dennoch zu Datenverlust kommen. Es empfiehlt sich einen Backup Mechanismus oder ein Volume Plugin für eine robustere Speicherung zu verwenden.