Docker
Wiederherstellung der kompletten Docker-Umgebung nach Neuinstallation
Diese Seite beschreibt Schritt für Schritt, wie Du **nach einem Komplett-Reinstall des Servers** (Ubuntu 22.04 LTS, leerer Zustand) Deine zuvor mit dem Skript
backup_docker_rsync.sh gesicherten Docker-Container,
-Volumes und -Konfigurationsdateien wiederherstellst.
Die Backups liegen auf einer QNAP-Freigabe unter
\\192.168.1.15\Backup\Docker\* (Snapshots) und werden lokal nach
/mnt/Backup/Docker/ gemountet.
- Voraussetzungen
- Frisches Linux – Root-SSH-Zugang
- NAS online, Netzwerk erreichbar
- Zeitstempel des Snapshots (oder
latest) - Sicherungs-Script
restore_docker_rsync.sh(siehe Scripts/Docker_Restore)
1 Linux-Grundsystem vorbereiten
# apt update && apt upgrade -y
# apt install vim curl rsync gnupg2 ca-certificates lsb-release \
software-properties-common
2 Docker Engine installieren
## 2.1 Docker-Repo hinterlegen
# install -m 0755 -d /etc/apt/keyrings
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
| tee /etc/apt/sources.list.d/docker.list
## 2.2 Engine + Compose laden
# apt update
# apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin \
docker-compose-plugin -y
## 2.3 Daemon starten + beim Boot aktivieren
# systemctl enable --now docker
# docker --version # prüfen
| Protokoll | Beispiel-Mount | Fstab-Eintrag |
|---|---|---|
| SMB/CIFS | # apt install cifs-utils
# mkdir -p /mnt/Backup
# mount -t cifs //192.168.1.15/Backup /mnt/Backup \
-o username=<NASUSER>,password=<PASS>,uid=0,gid=0,vers=3.0,noperm
|
//192.168.1.15/Backup /mnt/Backup cifs vers=3.0,uid=0,gid=0,noperm,_netdev,credentials=/root/.smb 0 0
|
| NFS (empfohlen, behält UID/GID) | # apt install nfs-common # mount -t nfs4 192.168.1.15:/Backup /mnt/Backup |
192.168.1.15:/Backup /mnt/Backup nfs4 defaults,_netdev 0 0
|
Überprüfen:
# ls /mnt/Backup/Docker | head
4 Restore-Skript ablegen
# curl -o /usr/local/sbin/restore_docker_rsync.sh \
https://<dein-git-oder-wiki>/restore_docker_rsync.sh
# chmod +x /usr/local/sbin/restore_docker_rsync.sh
5 Snapshot wählen
Alle verfügbaren Snapshots:
# ls /mnt/Backup/Docker 2025-06-01-0230 2025-06-02-0230 ... latest
6 Wiederherstellung ausführen
- Trockenlauf
# restore_docker_rsync.sh -s 2025-06-06-1557 --dry-run
Wenn die Ausgabe plausibel ist → Live-Restore:
# restore_docker_rsync.sh -s 2025-06-06-1557
- Docker-Dienst stoppt automatisch
- Volumes, Config & Compose-YAMLs werden zurückkopiert
- Docker startet neu, alle Stacks laufen wieder
7 Validierung
# docker ps # docker compose -f /data/compose/XX/docker-compose.yml ps
Stichproben-Check von Web-UIs / APIs der Dienste.
8 Backup-Automatisierung nachziehen
backup_docker_rsync.shund Cron-Eintrag wiederherstellen → siehe Doku/Backup_Docker
Troubleshooting
- „permission denied“ → Share nicht mit
uid=0,gid=0gemountet - Container bleiben
paused→ manuelldocker unpause $(docker ps -q --filter status=paused) - Netzwerk-Ports kollidieren → prüfen, dass keine anderen Services auf dem frischen OS laufen
Stand: 06 Juni 2025 – getestet mit Ubuntu 22.04 LTS & Docker 28.1