Schritt-für-Schritt-Anleitung zum Kopieren oder Verschieben von Docker-Containern zwischen Hosts

Wichtige Hinweise

  • Verstehen Sie den Prozess des Speicherns und Übertragens von Docker-Container-Images.
  • Docker-Volumes effektiv exportieren und importieren.
  • Erwägen Sie die Verwendung von Docker Compose für komplexere Bereitstellungen.

Die Geheimnisse des Verschiebens von Docker-Containern lüften

In der dynamischen Welt der Softwareentwicklung dienen Docker-Container als effiziente Pakete, die es Entwicklern ermöglichen, Anwendungen nahtlos in verschiedenen Umgebungen bereitzustellen. Im Laufe der Projektentwicklung wird die Fähigkeit, diese Container zu übertragen oder zu replizieren, entscheidend für die Optimierung der Ressourcennutzung und der Betriebseffizienz. Dieser Leitfaden erläutert Schritt für Schritt das Kopieren und Verschieben von Docker-Containern und den zugehörigen Volumes von einem Linux-Host auf einen anderen.

Speichern Sie Ihr Container-Image auf dem Quellhost

Schritt 1: Verfügbare Docker-Container auflisten

Listen Sie zunächst die verfügbaren Docker-Container auf Ihrem System auf. Identifizieren Sie den Container, den Sie exportieren möchten, beispielsweise eine Nginx-Instanz:

Schritt 2: Stoppen Sie den gewünschten Container

Stoppen Sie den ausgewählten Container vor dem Exportieren, um eine Beschädigung der Daten zu vermeiden:

Schritt 3: Aktuellen Containerstatus in Image übertragen

Bewahren Sie den Zustand Ihres Containers, indem Sie ihn in ein neues Docker-Image festschreiben, um alle Änderungen und Daten intakt zu halten:

Profi-Tipp: Verwenden Sie diese Option docker commit -p=false CONTAINER_NAME new_image_name, um das Anhalten des Containers zu vermeiden, obwohl dadurch das Risiko von Dateninkonsistenzen steigt.

Schritt 4: Speichern Sie das Docker-Image in einem Tar-Archiv

Speichern Sie das neue Docker-Image in einer Archivdatei (z. B. mycontainerimage.tar ), bevor Sie es auf den Zielhost übertragen:

Exportieren Sie das Docker-Volume aus Ihrem Container

Schritt 5: Installieren Sie Git und laden Sie das Volume-Exportskript herunter

Um den Export Ihrer Volumes durchzuführen, stellen Sie zunächst sicher, dass Git installiert ist, und laden Sie dann das Volume-Exportskript herunter:

Schritt 6: Skriptberechtigungen ändern und Export ausführen

Legen Sie die richtigen Berechtigungsbits für das Skript fest und führen Sie es aus, um die zugehörigen Volumes für Ihren Container zu extrahieren:

Schritt 7: Übertragen Sie Volume-Dateien auf den Remote-Computer

Senden Sie die neu archivierten Volumedateien mit Ihrer bevorzugten Methode, z. B. scp, an den Zielhost:

Laden Sie Ihr Container-Image auf den Zielhost

Schritt 8: Laden Sie das Docker-Image in den Docker-Daemon

Melden Sie sich bei Ihrem Remote-Host an und führen Sie dann den Befehl aus, um das Docker-Image in den Docker-Daemon zu laden:

Schritt 9: Erstellen Sie Ihren Container mit dem geladenen Bild

Verwenden Sie es docker create, um den neuen Container zu initialisieren und alle erforderlichen Ausführungsflags anzugeben:

Schritt 10: Starten Sie den importierten Container

Bestätigen Sie, dass Ihr importiertes Bild ordnungsgemäß funktioniert, indem Sie Folgendes ausführen: docker start CONTAINER_NAME.

Importieren Sie das Docker-Volume in Ihren Container

Schritt 11: Herunterladen und Konfigurieren des Volume-Importskripts

Laden Sie dasselbe Docker-Volume-Hilfsskript auf Ihren neuen Host herunter und legen Sie die entsprechenden Berechtigungen fest:

Schritt 12: Laden Sie das Volume aus dem Tar-Archiv

Führen Sie das Volume-Importskript mit Ihrer .tar Datei aus, um die Volumes auf Ihrem neuen Container wiederherzustellen:

Schritt 13: Testen Sie die Volumendaten in Ihrem Container

Stellen Sie sicher, dass der Container die Daten korrekt lädt, indem Sie seine interne Konfiguration überprüfen:

Übertragen Sie Ihr Bild ohne die Datei

Schritt 14: Verwenden Sie SSH für die direkte Bildübertragung

Anstatt eine TAR-Datei zu erstellen, können Sie das Image mit diesem Befehl direkt über eine SSH-Pipe übertragen:

Schritt 15: Starten Sie Ihren neuen Container

Führen Sie nach der korrekten Übertragung und Initialisierung Folgendes aus, docker start CONTAINER_NAME um die Funktionsfähigkeit zu überprüfen:

Nutzen Sie Docker Compose für die vollständige Migration der Docker-Bereitstellung

Schritt 16: Verfügbarkeit des Docker Compose-Plugins bestätigen

Stellen Sie sicher, dass Docker Compose in Ihrer Umgebung aktiviert ist:

Schritt 17: Erstellen Sie die Docker Compose-Konfiguration

Erstellen Sie in Ihrem Home-Verzeichnis ein Verzeichnis, in dem die Docker Compose-Datei gespeichert wird, und erstellen Sie die docker-compose.yml Datei für Ihre Anwendung:

Schritt 18: Starten Sie Ihre Anwendung mit Docker Compose

Führen Sie Docker Compose aus, um Ihre Anwendung wie in der Konfigurationsdatei angegeben bereitzustellen und ihre Funktionalität zu testen:

Zusätzliche Tipps

  • Überprüfen Sie nach der Übertragung immer die Integrität Ihrer Docker-Images und -Volumes.
  • Dokumentieren Sie Ihre Docker-Netzwerkkonfigurationen für reibungslose Übergänge zwischen Hosts.
  • Erwägen Sie die Verwendung von Docker Swarm oder Kubernetes zur Automatisierung der Anwendungsbereitstellung.

Zusammenfassung

Die Übertragung von Docker-Containern und den zugehörigen Daten zwischen Linux-Hosts erfordert die Verwendung von Befehlen zum Speichern von Images, Exportieren von Volumes und Sicherstellen der korrekten Neukonfiguration auf dem Zielhost. Mit diesen Schritten können Sie Ihr Container-Ökosystem erfolgreich über verschiedene Systeme hinweg verwalten und gleichzeitig Funktionalität und Konsistenz gewährleisten.

Abschluss

Das Beherrschen des Verschiebens von Docker-Containern erweitert nicht nur Ihr technisches Rüstzeug, sondern verbessert auch Ihre Bereitstellungsstrategien in verschiedenen Umgebungen. Nutzen Sie diese Praktiken, während Sie die grenzenlosen Möglichkeiten der Containerisierung weiter erkunden.

FAQ (Häufig gestellte Fragen)

Kann ich einen laufenden Docker-Container kopieren?

Ja, aber es ist am besten, den Container zuerst zu stoppen, um Komplikationen zu vermeiden. Verwenden Sie den docker commit Befehl, um seinen Status zu speichern.

Was ist, wenn mein Docker-Container groß ist?

Erwägen Sie die Übertragung ohne Erstellen einer Datei mithilfe der SSH-Pipe-Methode, um Speicherplatz und Zeit zu sparen.