Docker-Container migrieren
Was dieser Artikel über Docker-Migration behandelt
- Wann Container migriert werden müssen.
- Container und Images exportieren.
- Volumes kopieren.
- Compose-Umgebungen umziehen.
- Tipps für einen reibungslosen Umzug.
Einleitung: Docker-Container migrieren
Manchmal muss man einen Docker-Container auf einen anderen Host umziehen. Das kann bei Hardware-Wechsel, Cloud-Umzug oder Umstrukturierung notwendig sein. Eine saubere Migration erfasst das Image, die Konfiguration und vor allem persistente Daten. Ohne Volumes und Umgebungsvariablen verliert man beim Umzug oft den wichtigsten Teil.
Dieser Artikel zeigt, wie Docker-Container, Images, Volumes und Compose-Setups migriert werden.
Wichtige Begriffe
- Export: Container-Filesystem als tar.
- Import: tar in Image umwandeln.
- Save/Load: Image als tar speichern und wieder laden.
- Volume: Persistente Container-Daten.
- Commit: Container in Image umwandeln.
- Registry: Zentrale Image-Speicherung.
- rsync: Dateisynchronisation.
- Compose-Override: zusätzliche Compose-Datei.
Wann migrieren?
- Neuer Server.
- Cloud-Wechsel.
- Backup-Wiederherstellung.
- Entwicklungs- zu Produktivumgebung.
- Hardware-Tausch.
Container als Image speichern
docker commit mein-container mein-image:backup
docker save -o mein-image.tar mein-image:backup
Auf neuem Host:
docker load -i mein-image.tar
Container exportieren
docker export mein-container -o mein-container.tar
cat mein-container.tar | docker import - mein-image:importiert
Images übertragen
docker save -o images.tar image1:latest image2:latest
docker load -i images.tar
Volumes kopieren
Volumen auslesen und transferieren:
docker run --rm -v mein-volume:/data -v $(pwd):/backup alpine \
tar -czf /backup/mein-volume.tar.gz -C /data .
Auf neuem Host:
docker run --rm -v mein-volume:/data -v $(pwd):/backup alpine \
tar -xzf /backup/mein-volume.tar.gz -C /data
Mit rsync
Für grosse Volumes:
rsync -avz /var/lib/docker/volumes/mein-volume/_data/ \
benutzer@neuer-host:/var/lib/docker/volumes/mein-volume/_data/
Compose-Dateien
- Kopiere alle Compose-Dateien.
- Kopiere
.env-Dateien. - Sichere Volumes.
- Starte auf neuem Host:
docker compose up -d
Registry nutzen
Eigene Images in Registry pushen:
docker tag mein-image:latest registry.example.com:5000/mein-image:latest
docker push registry.example.com:5000/mein-image:latest
Auf neuem Host:
docker pull registry.example.com:5000/mein-image:latest
Checkliste
- Images gespeichert oder in Registry gepusht.
- Volumes gepackt und kopiert.
- Compose-Dateien übertragen.
-
.env-Dateien übertragen. - Netzwerke und Ports geprüft.
- Secrets und Zertifikate kopiert.
- Container auf neuem Host gestartet.
- Logs und Funktionalität prüfen.
Tipps
- Container besser als Image speichern als
export. - Volumes immer separat sichern.
- Nicht nachträglich den Container verändern, bevor man commitet.
- Versionsnummern notieren.
- Testumgebung vorher ausprobieren.
- Datenbank-Dumps zusätzlich erstellen.
- DNS und externe Abhängigkeiten anpassen.
Typische Stolpersteine
- Volume vergessen: Daten fehlen nach dem Start.
- Unterschiedliche Pfade: Bind Mounts passen nicht mehr.
- Fehlende .env: Container startet nicht.
- Architekturunterschiede: Image für amd64 läuft nicht auf arm64.
- Netzwerkprobleme: Neue Host-IP oder DNS.
- Secrets fehlen: Anwendung authentifiziert sich nicht.
Weiterführende Links und Infos
- BotServ.de Docker Volume-Backup
- BotServ.de Docker Backup-Strategien
- BotServ.de Docker Registry
- BotServ.de Docker Compose
FAQ: Docker-Container migrieren
Was ist der einfachste Weg?
Image mit docker save und Volumes als tar, dann auf neuem Host laden.
Muss ich den Container stoppen? Ja, für konsistente Daten und ein sauberes Image.
Gehen Volumen mit export verloren?
Ja, docker export speichert nur das Container-Filesystem.
Kann ich Volumes direkt kopieren?
Ja, über docker run mit tar oder rsync.
Wie übertrage ich viele Images?
Registry oder docker save mehrere Images in eine tar-Datei.
Quellen und weiterführende Literatur
- Docker Export/Import: https://docs.docker.com/engine/reference/commandline/export/
- Docker Save/Load: https://docs.docker.com/engine/reference/commandline/save/
- Docker Volumes: https://docs.docker.com/storage/volumes/
Zusammenfassung: Docker-Container migrieren
Container-Migration erfordert mehr als nur das Verschieben eines Images. Volumes, Umgebungsvariablen, Netzwerke und Secrets gehören ebenfalls zum Umzug. Images lassen sich mit docker save/load oder einer Registry übertragen, Volumes über tar oder rsync kopieren. Eine Checkliste und ein kurzer Funktionstest helfen, Datenverlust und Ausfallzeiten zu vermeiden.


