Wie ich meinen Docker-Server auf ein neues System umgezogen habe

- Die Migration von Docker-Hosts muss nicht überwältigend sein
- Stellen Sie sicher, dass das neue System richtig vorbereitet ist
- Sammeln Sie alle Docker-Dateien
- Alles auf das neue System übertragen ist unkompliziert
- Docker auf dem neuen System starten und Ihre Container sollten hochgefahren werden
- Dinge, auf die Sie beim Umzug achten sollten
Dieser Leitfaden erklärt, wie Sie Docker-Container einfach von einem Server auf einen anderen migrieren können, um Ihr Homelab effizient zu modernisieren und Leistungssteigerungen zu erzielen.
Haben Sie jemals darüber nachgedacht, Ihre Docker-Container von einem Server auf einen anderen zu verschieben? Ich hatte kürzlich das Bedürfnis, mein Homelab aufzurüsten und einen alten Rack-Server gegen ein neueres, leistungsfähigeres System auszutauschen—aber die Migration meiner Docker-Container war eine Herausforderung, der ich mir nicht sicher war, wie ich sie angehen sollte.
Es war tatsächlich nicht so schwierig, und es war eher zeitaufwendig als beängstigend oder frustrierend. Der Umzug erfordert nur ein paar Befehle und viel Geduld (je nachdem, wie viele Docker-Container Sie betreiben). Hier ist also, wie ich meinen Docker-Server auf ein völlig neues System migriert habe (ohne die virtuelle Maschine selbst zu verschieben).
Die Migration von Docker-Hosts muss nicht überwältigend sein
Letzten Januar war es das erste Mal, dass ich Docker-Container migrierte. Ich wechselte von Unraid zu einer ordentlichen Docker-Installation in einer Ubuntu-virtuellen Maschine. Das war ehrlich gesagt ein ziemlich geradliniger Umzug, und ich nutzte die integrierten Backup-Methoden für einige Apps und begann andere von Grund auf neu.
Vor Kurzem entschied ich mich jedoch, meinen virtuellen Docker-Host von einem Server auf einen anderen zu verschieben. Während ich darüber nachdachte, die virtuelle Maschine selbst zu migrieren, entschied ich mich für einen anderen Ansatz und migrierte die Docker-Installation auf eine brandneue virtuelle Maschine.
Das war ziemlich überwältigend zu überlegen. Ich müsste meine Docker-Container eine ganze Weile offline nehmen, um die Migration durchzuführen, und es gibt viele Dinge, die während des Transfers schiefgehen könnten.
Als ich jedoch in den Prozess eintauchte, stellte ich fest, dass es nicht so schlimm war, wie ich es mir vorgestellt hatte. Sicher, es würde ein paar Stunden in Anspruch nehmen (und ich stieß definitiv auf einige Hindernisse), aber insgesamt war es ziemlich schmerzlos und nicht so überwältigend.
Stellen Sie sicher, dass das neue System richtig vorbereitet ist
Ich begann damit, sicherzustellen, dass meine neue virtuelle Maschine bereit war. Zuerst stellte ich sicher, dass ich die gleiche Version von Ubuntu verwendete: Server 24.04 LTS. Ubuntu Server ist seit über einem Jahrzehnt meine erste Wahl, wann immer ich einen Linux-Server benötige. Ich fühle mich damit einfach wohl.
Sobald Ubuntu Server 24.04 auf dem neuen virtuellen Maschinen-Host installiert war, sorgte ich dafür, dass Docker und alle anderen notwendigen Abhängigkeiten konfiguriert und einsatzbereit waren. Dazu gehören zusätzliche Treiber für NVIDIA oder Intel sowie die Einrichtung aller erforderlichen Ordnerpfade mit Docker.
Nachdem ich das konfiguriert hatte, stoppte ich sowohl den Docker-Dienst als auch den Socket mit den folgenden Befehlen:
systemctl stop docker.socket
systemctl stop docker
Sie müssen möglicherweise nicht beide Befehle ausführen, aber ich tat es. Dadurch wurde Docker essentially abgeschaltet, damit ich Änderungen am Core-Docker-Dateisystem vornehmen konnte, ohne etwas zu beschädigen.
Sobald dies erledigt war, führte ich die genau gleichen Befehle auf dem alten System aus. Ich musste sicherstellen, dass Docker auf dem alten System ausgeschaltet war, bevor ich die Dateien sammelte, da dies gewährleistete, dass sich nichts von dem, was ich während der Migration startete, bis zu ihrem Abschluss änderte.
Das bedeutete auch, dass alle meine Docker-Container offline sein würden. Ganz ehrlich, das war der schlimmste Teil für mich. Mein Homelab steuert mein ganzes Haus mithilfe von Docker, von Home Assistant über Audiobookshelf, Plex und viele andere Dienste. Docker abzuschalten bedeutete, diese Systeme herunterzufahren, daher musste ich auf den richtigen Zeitpunkt warten.
Schließlich fand ich einen Zeitraum, in dem der Server inaktiv war, und ich konnte fortfahren, indem ich Docker abschaltete und dann zum nächsten Schritt überging: alle Dateien für die Übertragung vorzubereiten.
Sammeln Sie alle Docker-Dateien
Das war der längste Teil des Prozesses für mich. Ich löschte eine ganze Reihe von Dateien und Ordnern aus dem Verzeichnis, in dem ich meine Docker-Volumes binde, um diesen Prozess so schnell wie möglich zu gestalten, aber es dauerte trotzdem einige Stunden.
Im Wesentlichen möchten Sie Ihren Docker-Ordner tar-en, und wenn Sie einen anderen Bereich für Ihre Volume-Mounts verwenden, auch diesen Ordner. Wenn Sie nur Docker-Volumes verwenden, werden diese beim ersten Befehl erfasst.
Um zu beginnen, führte ich den folgenden Befehl auf meinem alten Server aus:
sudo tar -czvf docker-backup.tar.gz /var/lib/docker
Was dies tut, ist, dass der /var/lib/docker-Ordner in eine tar.gz-Datei gesichert wird. Je nachdem, wie viele Container Sie betreiben und ob Sie Docker-Volumes verwenden oder nicht, kann das eine Weile dauern. Für mich dauerte es etwa 30 bis 45 Minuten.
Dann führte ich den folgenden Befehl auf meinem alten Server aus:
sudo tar -cvzf docker-files.tar.gz /portainer
Da ich Portainer als meinen Docker-Manager verwende, habe ich alle meine Docker-Dateien im Verzeichnis /portainer auf dem Server abgelegt. Das bedeutet, ich habe /portainer/audiobookshelf, /portainer/plex usw. Der oben genannte Befehl nimmt den /portainer-Ordner und packt ihn in eine schöne kleine Datei, was das Verschieben erleichtert. Das Backup dauerte etwa eine Stunde, aufgrund der großen Datenmenge in meinen Docker-Volume-Ordnern.
Sobald beide Ordner gepackt waren, war ich bereit für den nächsten Schritt: das Verschieben der komprimierten Archive auf den neuen Server.
Alles auf das neue System übertragen ist unkompliziert
Ich habe ein 2,5 Gb/s Netzwerk zu Hause und nutze es gerne, wann immer ich kann. Also habe ich einen Befehl gefunden, um die Datei von einem Server auf den anderen zu verschieben und dabei die Übertragungsgeschwindigkeiten im Terminal anzuzeigen:
rsync -ah --info=progress2 docker-backup.tar.gz user@remote-host:/destination/path/
Mit diesem Befehl konnte ich die Übertragung überwachen und sicherstellen, dass alles nach Plan verlief. Glücklicherweise tat es das. Innerhalb weniger Minuten wurden die Dateien vom alten Server auf den neuen Server verschoben, und ich war bereit, weiterzumachen.
Natürlich könnte man auch einen USB-Stick verwenden, um Dateien von einem Server auf den anderen zu übertragen. Mein alter Server (ein Dell R720 Rack-Server) verfügt nur über USB 2.0, daher war es für mich viel schneller, die Dateien über das Netzwerk zu übertragen.
Sobald die Dateien auf dem neuen Server sind, entpacken Sie sie einfach an den richtigen Ort. Ich begann mit dem Docker-Ordner:
sudo tar -xpf docker-backup.tar.gz -C /
Als dies abgeschlossen war, führte ich aus:
sudo tar -xpf docker-files.tar.gz -C /
Dies brachte all meine alten Docker-Dateien und meine Volume-Mounts zurück, wo sie hingehören, und behielt die Zugriffsrechte korrekt eingestellt, was den Großteil des Umzugs ausmachte.
Ehrlich gesagt dauerte das Packen, Übertragen und Entpacken der Docker-Dateien den Großteil der Zeit für den Umzug. Insgesamt benötigten diese drei Aktionen etwa drei bis vier Stunden, um auf meinem Server abgeschlossen zu werden.
Sobald ich das erledigt hatte, war ich nur noch einen Schritt vom Abschluss des Umzugs entfernt. Jetzt war es an der Zeit, Docker endlich auf dem neuen Server zu starten.
Docker auf dem neuen System starten und Ihre Container sollten hochgefahren werden
Mit all den Dateien an ihrem Platz, schaltete ich Docker zum ersten Mal mit allen Containern ein. Das war einfach und erforderte nur zwei Befehle:
systemctl start docker
systemctl start docker.socket
Ich erwartete, dass viele Dinge beim Einschalten von Docker nach dem Umzug nicht mehr funktionieren würden. Stattdessen starteten die meisten Dinge problemlos und waren bereit. Wirklich, das ist alles, was es braucht, um Docker auf Ihrer neuen Maschine zu starten.
Wenn die Konfiguration zwischen Ihrem alten und neuen System nicht viel anders ist, sollte alles einfach funktionieren. Wenn Sie jedoch wie ich sind und viele Änderungen zwischen den beiden Systemen vorgenommen haben, gibt es einige Dinge, auf die Sie achten müssen.
Dinge, auf die Sie beim Umzug achten sollten
Eines der ersten Dinge, die ich beheben musste, war das Ändern einiger Container, die die NVIDIA-Runtime verwendeten, zu einer Intel-Runtime. Auf meinem alten Server hatte ich eine GTX 1650 Grafikkarte zur Unterstützung von KI-Verarbeitung und Transcodierung. Der neue Server hatte einen i9-13900K mit Intels integrierter Grafik, die in der Lage ist, dieselben Arbeitslasten zu bewältigen.
Das erforderte einige Anpassungen, und ich habe noch nicht alles vollständig umgestellt (ich habe bei Scrypted aufgegeben und lasse es einfach auf dem Prozessor laufen, anstatt auf der iGPU), aber insgesamt war es ein recht einfacher Wechsel.
Außerdem stieß ich auf ein großes Problem mit Home Assistant. Aus irgendeinem Grund hatte der Docker-Container von Home Assistant keine seiner Einstellungen übertragen. Es gibt einige Konfigurationsinformationen, die ich in /portainer/homeassistant gespeichert habe, aber es startete so, als hätte ich Home Assistant nie zuvor verwendet.
Das war jedoch leicht zu beheben. Ich schaltete einfach die alte virtuelle Maschine wieder ein, trat Home Assistant bei, lud die Backup-Datei herunter und stellte sie auf der neuen virtuellen Maschine wieder her. Das brachte mich sofort wieder in Betrieb.
Einige von Dockers Netzwerkeinstellungen könnten ebenfalls eine Überprüfung benötigen. Scrypted, zum Beispiel, musste ich zurück auf das Host-Netzwerk ändern, nachdem ein neues scrypted-default-Netzwerk aus irgendeinem Grund erstellt wurde.
Ich musste auch die statische IP auf der neuen virtuellen Maschine festlegen. Dann musste ich einige andere kleine Details aktualisieren.
Alles rund um den Server, um sicherzustellen, dass alles reibungslos mit der integrierten Grafik funktioniert, die ich durchgereicht habe.
Insgesamt war es ein ziemlich reibungsloser Umzug, und ich bin sehr glücklich mit dem neuen Server. Er ist schneller, reaktionsschneller und viel leistungsfähiger als der alte Server – und das alles bei geringerem Stromverbrauch.
Der Umzug war relativ einfach, und ich bin froh, dass ich gelernt habe, wie man Docker-Container von einem System auf ein anderes verschiebt. Ich bin mir sicher, das wird irgendwann nützlich sein!
Wenn Sie noch nie Docker-Container ausgeführt haben oder gerade erst anfangen, ist Docker ein wunderbares Tool. Es betreibt fast mein ganzes Homelab allein.
Hier sind einige meiner Lieblings-Docker-Container, die meiner Meinung nach jeder Homelabber laufen sollte. Die meisten sind einfach einzurichten und können Ihrem Setup viel Wert verleihen. Tatsächlich ist mein Homelab zu einer der nützlichsten Dinge in meinem Haus geworden.
Bist du neugierig auf weitere Artikel wie Wie ich meinen Docker-Server auf ein neues System umgezogen habe? Entdecke spannende Inhalte in der Kategorie Wie man.

Schreibe einen Kommentar