Docker Container zwischen 2 Hosts verschieben

Vom
| Aktualisiert am
| Von Robert Einsle
Lerne, wie du Docker-Container effizient zwischen zwei Hosts verschiebst – eine detaillierte Anleitung von Einsle Web Services mit praktischen Tipps und Befehlen.

Viele Administratoren mussten wahrscheinlich schon einmal die Aufgabe bewältigen, einen Docker-Container von einem Host auf einen anderen zu übertragen. Gründe hierfür könnten Speicherplatzmangel auf dem einen Host oder eine zu geringe Leistungsfähigkeit des alten Servers sein.

Zum Glück lässt sich dieser Prozess mit Docker durch einige einfache Befehle realisieren. Notwendig sind hierfür nur etwas freier Speicherplatz, eine Verbindung zwischen den beiden Hosts und ein wenig Geduld.

Als Veranschaulichung nutze ich in diesem Beispiel den Containernamen RustDesk. Dieser Name dient lediglich als Beispiel und kann durch den Namen Ihres eigenen Containers ersetzt werden.

Quellserver

Um einen Docker-Container erfolgreich zu verschieben, ist es zunächst notwendig, ihn herunterzufahren. Dies gewährleistet, dass der Container sich in einem konsistenten Zustand befindet und verhindert den Verlust von Daten.

Daher solltest Du den nachfolgenden Befehl ausführen, um den Docker-Container anzuhalten:

docker stop rustdesk

Der nächste Schritt im Prozess des Verschiebens eines Docker-Containers besteht darin, alle offenen Dateien im Container zu sichern. Dies erreichst Du urch einen Commit aller Änderungen. Nutze hierfür den folgenden Befehl:

docker commit -p=false rustdesk rustdesk-export

In diesem Schritt erstellst Du auf dem Server ein neues Image mit dem Namen „rustdesk-export“. Dieses Image umfasst alle Dateien, die sich im ursprünglichen Container befanden, einschließlich aller manuell vorgenommenen Anpassungen. Wie zuvor erwähnt, beinhaltet dieses neue Image keine persistenten Speicherdaten.

Anschließend folgt der Schritt, in dem Du den Container sicherst. Dies tust Du , indem Du mit dem nachfolgenden Befehl eine komprimierte Datei erstellst:

docker save rustdesk-export | gzip > rustdesk-export.tar.gz

Das nun erstellte komprimierte Archiv lässt sich flexibel übertragen. Du kannst es je nach Bedarf und Situation auf verschiedene Weise versenden oder speichern.

Zielserver

Nachdem die komprimierte Datei erfolgreich auf den Zielserver übertragen wurde, kannst Du ihn dort entpacken und unmittelbar als Image in Docker registrieren. Um dies zu bewerkstelligen, führe den folgenden Befehl aus:

gunzip -c rustdesk-export.tar.gz | docker load

Sobald das Image geladen ist, kannst Du den Container auf dem Zielserver starten. Verwende hierfür den nachfolgenden Befehl:

docker run -d --name=rustdesk --publish 80:80 rustdesj-export

Dieser Docker Befehl wird nicht bei RustDesk nicht funktionieren, da das RustDesk Docker Image anders aufgebaut ist. Der Code soll nur der Veranschaulichung dienen.

Mit diesem Befehl startest Du den Docker-Container mit dem Namen „rustdesk“ und gibst dabei den Port 80 frei. Solltest Du einen anderen Port verwenden wollen, kannst Du diesen einfach im Befehl austauschen. Als Image wird das zuvor importierte „rustdesk-export“ verwendet.

Damit ist der komplette Umzug abgeschlossen. Der Container läuft jetzt auf dem neuen Server.

Robert Einsle
Robert Einsle
schnelle Problemlösung durch langjährige Erfahrung

Schreibe einen Kommentar