Nachdem ich die Dokumente gelesen hatte, war ich etwas verwirrt darüber, wie produktive Anwendungs- / Servicedaten am besten verwaltet werden können.
Es scheint 3 Möglichkeiten zu geben:
- Ordnen Sie das Volume einfach dem Host-Verzeichnis zu (dh dem
-v
Argument fürdocker run
). - Erstellen Sie ein Docker-Container-Image für Daten (dh separate Container und
--volumes-from
) - Docker-Volume erstellen (z. B.
docker volume create
)
Nun scheint es, dass die akzeptierte Praxis Option # 2 ist, aber dann frage ich mich, was der Zweck von # 3 ist.
Insbesondere wie gehen Sie mit diesen Szenarien richtig um docker volume
und ist es besser, einen Datenvolumencontainer zu verwenden oder dies für jede Situation?
- Sie benötigen Anwendungsdaten in einem separaten Volume und / oder einer separaten Speicherebene auf Ihrem Server
- Sichern
- Daten wiederherstellen
btrfs scrub
können, um beschädigte Dateien zu finden und zu korrigieren. Ich bin mir nicht sicher, wie dockerisiertes Material funktioniert, aber ich vermute, es schützt nicht vor Datenfäule. Ich benötige daher immer eine vollständige Wiederherstellung, wenn etwas Schlimmes passiert, anstatt nur einzelne Dateien wiederherzustellen. Ein anderer Gedanke ist, dass es eine weitere Abstraktionsebene hinzufügt, wodurch das Lesen und Schreiben von Dateien noch mehr verlangsamt wird. Ich sehe die Vorteile von # 2 und # 3 irgendwie nicht, aber ich habe keine Erfahrung mit Docker, daher könnte sich dies ändern.