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.
Backup ist erst fertig, wenn der Restore getestet ist
Das meistunterschätzte Detail: Ein Backup, das nie restauriert wurde, ist keine Strategie, sondern Hoffnung. Mach den Restore-Test einmal richtig:
# Volume auf einem Test-Host oder in einem zweiten Verzeichnis restaurieren
docker run --rm -v ollama_restore:/data -v $(pwd):/backup alpine \
tar xzf /backup/ollama-volume.tar.gz -C /data
# Kurz anstarten und prüfen
docker compose up -d
docker exec ollama ollama list # sind die Modelle da?
Wer das einmal gemacht hat, weiß, ob das Backup vollständig ist. Typische Lücken: Das Upload-Verzeichnis von Open WebUI, die ~/.ollama-Modelle oder die Postgres-Daten einer App liegen außerhalb des vermeintlich gesicherten Volumes.
3-2-1 auch im Homelab
- 3 Kopien: Original plus zwei Backups.
- 2 Medien: einmal auf demselben Server (schnell), einmal extern (NAS, zweite Maschine oder Objektspeicher).
- 1 Offsite: außerhalb Deiner Wohnung, z.B. ein verschlüsselter Restic-Snapshot zu einem S3-kompatiblen Dienst oder einem zweiten Standort.
Für reine Homelabs reicht oft schon der zweite Punkt plus ein wöchentlicher Offsite-Sync der wichtigsten Volumes. Wichtiger als das Tool ist die Regelmäßigkeit: restic oder borg per Timer, nicht per Hand.
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.


