Die suggested strategy zu verwalten und Backup-Daten in Docker sieht ungefähr so aus:"Official" Docker Backup-Strategie - Was ist mit Konsistenz?
docker run --name mysqldata -v /var/lib/mysql busybox true
docker run --name mysql --volumes-from mysqldata mysql
docker run --volumes-from mysqldata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /var/lib/mysql
Allerdings, wenn ich Backup-Lauf Container, die Art und Weise, ich werde nicht eine konsistente Sicherung erhalten, sollte ich? Ich kenne Tools wie mysqldump
, aber was ist, wenn ich zum Beispiel einen Ordner sichern muss, zu dem Dateien ständig hinzugefügt und entfernt werden?
_ "um Backups in ein Volume zu machen" _ Aber diese Backups werden nicht konsistent sein, oder? Was ich meine: Sie können grundsätzlich keine konsistenten Backups in einem Container machen. Sie müssen einen Snapshot (lvm/btrfs)/var/lib/docker/volumes/XYZ erstellen und auf dem Host-Computer sichern. – S1lentSt0rm
Volumes werden zwischen laufenden Containern in Real (ish) -Zeit geteilt. Sie können sie sogar vom Host-Dateisystem aus mounten. Verwenden Sie den Parameter -v/host_fs/location:/container_fs/location. Alle Änderungen an den Dateien im Volume sollten allen Containern und Hosts gleichzeitig zur Verfügung stehen. –
Ich bin mir dessen bewusst. Das Problem ist, dass ich _konsistente_ Backups benötige: Snapshot den Status des Dateisystems _atomically_ zu einem bestimmten Zeitpunkt und Backup-Daten von diesem schreibgeschützten Snapshot. Ich weiß nicht, wie man das in einem Container macht, da ich dafür lvm oder btrfs-tools verwenden muss. Mit dem oben beschriebenen Ansatz verhindert niemand, dass sich das Dateisystem während der Sicherung ändert. – S1lentSt0rm