#
Volume Umzug
#
Voraussetzungen
- Docker ist auf beiden Maschinen installiert.
- Du verwendest das Tool
offen/docker-volume-backup:v2.33.2. - Ersetze die Platzhalter
volume_namedurch die tatsächlichen Volumen-Namen.
#
Schritt 1: Backup auf der Quellmaschine erstellen
Erstelle für jedes deiner Volumes ein separates Backup. Die Backups werden im aktuellen Verzeichnis gespeichert, wo die Ausführung stattfindet.
Verwende diesen Befehl, um das Backup sofort auszuführen und den Dateinamen für das Backup festzulegen:
docker run --rm \
-v volume_name:/backup/volume_name:ro \
-v $(pwd):/archive \
--entrypoint backup \
-e BACKUP_FILENAME="volume_name-backup.tar.gz" \
offen/docker-volume-backup:v2.33.2
Ersetze:
volume_namedurch den tatsächlichen Namen des Docker-Volumes (z.B.my_volume).$(pwd)stellt sicher, dass die Backups im aktuellen Verzeichnis gespeichert werden.BACKUP_FILENAMElegt fest, dass die Backup-Datei nach dem Volume benannt wird.
#
Beispiel:
docker run --rm \
-v my_volume:/backup/my_volume:ro \
-v $(pwd):/archive \
--entrypoint backup \
-e BACKUP_FILENAME="my_volume-backup.tar.gz" \
offen/docker-volume-backup:v2.33.2
Dies sichert das Volume my_volume und speichert das Backup im aktuellen Verzeichnis als my_volume-backup.tar.gz.
#
Schritt 2: Übertragen der Backups auf die Zielmaschine
Verwende scp mit dem -A-Flag, um Agent-Weiterleitung zu ermöglichen:
scp -A $(pwd)/volume_name-backup.tar.gz user@target_machine:/path/to/target/
Ersetze volume_name entsprechend.
Wichtig: Damit das Agent-Forwarding korrekt funktioniert, muss die SSH Verbindung ebenfalls mit der -A-Flag aufgebaut sein.
#
Schritt 3: Wiederherstellung des Backups auf der Zielmaschine
Hier ist die einfachste Methode, um ein Backup wiederherzustellen:
- Backup entpacken:
tar -C /tmp -xvf volume_name-backup.tar.gz
- Inhalt des entpackten Backups direkt ins Volume kopieren:
docker run --rm -v volume_name:/backup_restore -v /tmp/backup/volume_name:/source alpine sh -c "cp -r /source/* /backup_restore/"
Dies kopiert den Inhalt des entpackten Backups in das Volume volume_name, ohne zusätzliche Schritte oder temporäre Container.
#
Beispiel:
Wenn du das Backup für das Volume my_volume wiederherstellen möchtest:
- Entpacke das Backup:
tar -C /tmp -xvf my_volume-backup.tar.gz
- Kopiere den Inhalt ins Volume:
docker run --rm -v my_volume:/backup_restore -v /tmp/backup/my_volume:/source alpine sh -c "cp -r /source/* /backup_restore/"
Hinweis: Stelle sicher, dass die Daten im Ordner /tmp/backup/volume_name/ korrekt entpackt wurden, bevor du den Kopierbefehl ausführst.