Docker-Volumes sicher backuppen
Was dieser Artikel über Docker-Volume-Backups behandelt
- Wie man Docker-Volumes sichert.
- Welche Tools sich eignen.
- Wie ein Restore funktioniert.
- Inkrementelle und automatisierte Backups.
- Offsite- und Verschlüsselungsoptionen.
Einleitung: Docker-Volumes sicher backuppen
Docker-Volumes enthalten oft die wichtigsten Daten: Datenbanken, Konfigurationen, Modelle, Uploads oder Logs. Wer Container ohne Backup-Strategie betreibt, riskiert Datenverlust bei Containerfehlern, defekten Festplatten oder versehentlichen Löschvorgängen. Ein gutes Backup sollte regelmässig, automatisch, getestet und an einem sicheren Ort liegen.
Dieser Artikel zeigt, wie man Docker-Volumes zuverlässig sichert und wiederherstellt.
Wichtige Begriffe
- Volume: Persistenter Speicher in Docker.
- Bind Mount: Verzeichnis vom Host im Container.
- Backup: Kopie der Daten zum Wiederherstellen.
- Restore: Zurückspielen eines Backups.
- Snapshot: Zeitpunktgenauer Zustand.
- Inkrementell: Nur geänderte Daten sichern.
- Offsite: Backup an externem Ort.
- 3-2-1-Regel: Drei Kopien, zwei Medien, einer extern.
Manuelles Backup mit tar
docker run --rm -v quell-volume:/data -v $(pwd):/backup alpine \
tar -czf /backup/volume-backup.tar.gz -C /data .
Manuelles Restore
docker run --rm -v quell-volume:/data -v $(pwd):/backup alpine \
tar -xzf /backup/volume-backup.tar.gz -C /data
Das Volume muss vorher existieren.
Einzelnes Volume identifizieren
docker volume ls
docker inspect quell-volume
Laufende Container vor dem Backup stoppen
Für konsistente Datenbank-Backups Container stoppen oder Datenbank-eigene Tools nutzen:
docker stop datenbank
docker run --rm -v datenbank-volume:/data -v $(pwd):/backup alpine \
tar -czf /backup/db.tar.gz -C /data .
docker start datenbank
Backup-Skript
#!/bin/bash
BACKUP_DIR=/pfad/zu/backups
DATE=$(date +%Y%m%d_%H%M%S)
VOLUME=$1
docker run --rm -v "${VOLUME}:/data" -v "${BACKUP_DIR}:/backup" alpine \
tar -czf "/backup/${VOLUME}_${DATE}.tar.gz" -C /data .
Automatisierung mit Cron
0 2 * * * /home/benutzer/backup-volume.sh datenbank-volume
Restic für inkrementelle Backups
Restic eignet sich hervorragend für inkrementelle, deduplizierte und verschlüsselte Backups.
docker run --rm \
-v datenbank-volume:/data:ro \
-v /pfad/zu/repo:/repo \
restic/restic init -r /repo
docker run --rm \
-v datenbank-volume:/data:ro \
-v /pfad/zu/repo:/repo \
-e RESTIC_PASSWORD=meinpasswort \
restic/restic -r /repo backup /data
Duplicati
Duplicati bietet eine Web-Oberfläche, inkrementelle Backups, Verschlüsselung und Cloud-Speicher:
services:
duplicati:
image: duplicati/duplicati
volumes:
- /pfad/zu/backups:/backups
- /var/lib/docker/volumes:/source:ro
ports:
- "8200:8200"
Offsite-Backup
- S3-kompatible Objektspeicher.
- SFTP-Server.
- rsync.net.
- B2 Backblaze.
- Nextcloud.
Restic kann direkt auf S3 zielen:
restic -r s3:https://s3.example.com/bucket backup /data
Restore aus Restic
docker run --rm -v datenbank-volume:/data -v /pfad/zu/repo:/repo -e RESTIC_PASSWORD=meinpasswort \
restic/restic -r /repo restore latest --target /data
Backups testen
- Regelmässig ein Backup in ein temporäres Volume wiederherstellen.
- Prüfen, ob Anwendung damit startet.
- Wichtige Dateien öffnen.
- Backup-Ketten auf Konsistenz überprüfen.
Tipps
- Automatisierte Backups einrichten.
- Retention definieren, wie lange Backups aufbewahrt werden.
- Offsite und verschlüsselt speichern.
- Container vor dem Backup stoppen oder applikationssicher sichern.
- Logs überwachen.
- Notfall-Restore dokumentieren.
Typische Stolpersteine
- Container läuft während des Backups: Inkonsistente Daten.
- Volume nicht gefunden: Name falsch geschrieben.
- Rechte verloren: Backup als root erstellt, Restore als anderer Benutzer.
- Backup nicht getestet: Notfall-Restore funktioniert nicht.
- Speicherplatz: Backups füllen Festplatte.
- Verschlüsselung vergessen: Passwort nicht notiert.
Weiterführende Links und Infos
- BotServ.de Docker Backup
- BotServ.de Docker Volumes
- BotServ.de Docker Logs
- BotServ.de Sicherer Betrieb Backup
FAQ: Docker-Volume-Backups
Kann ich einfach Docker-Volumes kopieren? Laufende Container sollten zuvor gestoppt werden.
Wie oft sollte ich sichern? Mindestens täglich für wichtige Daten, bei Datenbanken häufiger.
Sind tar-Backups gut? Für einfache Fälle ja, für grössere Setups inkrementelle Lösungen wie Restic besser.
Wo sollten Backups liegen? Mindestens an einem externen Ort, besser zwei.
Wie stelle ich ein Volume wieder her? In ein bestehendes Volume entpacken oder neu anlegen.
Quellen und weiterführende Literatur
- Restic: https://restic.net/
- Duplicati: https://www.duplicati.com/
- Docker Volumes: https://docs.docker.com/storage/volumes/
Zusammenfassung: Docker-Volumes sicher backuppen
Docker-Volumes sind das Herzstück persistenter Daten. Eine gute Backup-Strategie kombiniert regelmässige, konsistente, getestete und offsite-gespiegelte Backups. Für einfache Zwecke reichen tar-Backups, für professionelle Setups Restic oder Duplicati. Container sollten vor dem Sichern gestoppt oder applikationssicher gepackt werden. Wer Backups nicht nur erstellt, sondern auch regelmässig testet, ist bei einem echten Ausfall vorbereitet.


