Durchführung der lokalen Migration von Docker-Images

Durchführung der lokalen Migration von Docker-Images

Ich habe vor Kurzem Docker gelernt und stoße dabei häufig auf ein Problem: Beim Herunterladen von Docker-Images treten aus bekannten Netzwerkgründen Fehler auf. Obwohl es online viele Lösungen gibt, z. B. die Verwendung inländischer Spiegeldienste wie Docker Hub Mirror, ziehe ich es aus persönlichen Gründen (zum Glück habe ich eine ausländische VM) vor, die heruntergeladenen Images nicht über die Docker-Registrierung freizugeben.

Das Problem ist klar:

Geben Sie das Docker-Image auf Maschine A für andere Maschinen frei, ohne den Umweg über die Docker-Registrierung zu nehmen (das heißt, lokale Migration des Docker-Images).

Die Lösung ist auch ganz einfach:

Verwenden Sie die Speicher- und Ladebefehle von Docker. Die spezifischen Schritte sind wie folgt

1. Listen Sie alle Docker-Images auf Maschine A auf und suchen Sie den Image-Namen, den Sie speichern möchten

sudo Docker-Bilder

2. Verwenden Sie den Befehl „docker save“ auf Maschine A, um das Image als TAR-Datei zu speichern

sudo docker save image_name -o Dateipfad

Dabei wird image_name durch den im ersten Schritt ermittelten Namen des zu speichernden Bildes ersetzt. file_path ist der exportierte Tar-Dateipfad, z. B. /home/tmp/image1.tar

3. Übertragen Sie die exportierte Image-TAR-Datei auf einen anderen Computer, beispielsweise Computer B. Hierzu stehen Ihnen verschiedene Methoden, wie beispielsweise scp etc. zur Verfügung, welche hier jedoch nicht näher beschrieben werden.

4. Verwenden Sie den Befehl „Docker Load“, um die Image-TAR-Datei auf den Computer zu laden, der das Image verwenden muss (z. B. Computer B).

sudo docker load -i Dateipfad

Hinweis: Darüber hinaus können Sie auch die Export- und Importbefehle von Docker verwenden, um ähnliche Funktionen zu erreichen. Sie können die Unterschiede zwischen Exportieren/Speichern und Importieren/Laden im Internet nachlesen, daher werde ich hier nicht näher darauf eingehen.

Der grundlegende Unterschied besteht darin, dass ein Container exportiert wird (ohne Verlauf und Layer-Informationen), während ein Image gespeichert wird (mit vollständigem Verlauf und Layer-Informationen, das Layer-Rollback unterstützt).

Ergänzung: Backup und Migration von Docker-Images

Erster Schritt:

Verwenden Sie den Befehl docker ps -a, um alle Container anzuzeigen

[root@localhost ~]# docker ps -a 
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
9505a10e6d29 nginx „nginx -g ‚Daemon von …‘“ vor 34 Minuten Beendet (0) vor 8 Minuten mynginx
4c89fff9ac8c mysql:5.6 "docker-entrypoint.s..." vor 11 Tagen Beendet (0) vor 11 Tagen mymysql
0abefefe2592 centos "/bin/bash" vor 2 Monaten Beendet (255) vor 12 Tagen mycentos

Schritt 2:

Der Container wird als Objekt gespeichert, der Docker-Commit-Containername soll gespeichert werden

[root@localhost conf]# Docker-Commit mynginx mynginx_backup
sha256:a6ca067596a2c319ddcdc9592afa9a7e9be4c157959c0327214d3e577333ed3a

Schritt 3:

Sehen Sie sich das gerade gespeicherte Bild an

[root@localhost conf]# Docker-Bilder
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
mynginx_backup latest a6ca067596a2 vor 19 Sekunden 109MB

Schritt 4:

Imagesicherung (als Tar-Datei gespeichert), docker save -o Containername.zu speichernder Tar-Name

[root@localhost ~]# docker save -o mynginx.tar mynginx_backup

Schritt 5:

Aktuelles Verzeichnis anzeigen

[root@localhost ~]# ls
anaconda-ks.cfg conf-Daten initial-setup-ks.cfg Java-Protokolle mynginx.tar original-ks.cfg

Schritt 6:

Löschen Sie das Originalbild und zeigen Sie es an

[root@localhost ~]# docker rmi mynginx_backup
Ohne Tag: mynginx_backup:latest
Gelöscht: sha256:a6ca067596a2c319ddcdc9592afa9a7e9be4c157959c0327214d3e577333ed3a
Gelöscht: sha256:facd3b28655186bdc7349bc017557ed80f94155831a8a3ed936f498e2f5b6b1c
[root@localhost ~]# Docker-Bilder
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE

Schritt 7:

Image-Wiederherstellung, Docker-Load -i gepackter Container-Dateiname.tar

[root@localhost ~]# docker load -i mynginx.tar 
ea4399e4dbe6: Ebene wird geladen [======================================================>] 6,656kB/6,656kB
Geladenes Bild: mynginx_backup:latest
[root@localhost ~]# Docker-Bilder
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
mynginx_backup latest a6ca067596a2 vor 7 Minuten 109 MB

Schritt 8:

Verwenden Sie dieses Image, um einen Container zu erstellen

[root@localhost ~]# docker run --name mynginx2 -p 80:80 -d mynginx_backup
a4809747f3c233d5a8f0c35542449adda10c06305f32c32a55e4842630212760

Schritt 9:

Geben Sie die IP-Adresse in den Browser ein, um zu sehen, ob es erfolgreich war

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • Sprechen Sie über das Problem des Ersetzens von Docker (Shim) durch Containerd in Kubernetes1.20
  • So führen Sie den Betrieb nach dem Verlassen des Docker-Containers weiter aus
  • Docker entfernt abnormale Containervorgänge
  • Auf Wiedersehen Docker: So wechseln Sie in 5 Minuten zu Containerd
  • Docker stellt Containern dynamisch Ports zur Verfügung
  • Löschen Sie den Image-Vorgang von „none“ in Docker-Images
  • Lösen Sie das Problem verschwindender Docker-Images
  • Docker-Image kann nicht gelöscht werden. Fehler: Kein solches Image: xxxxxx-Lösung
  • So löschen Sie ein Image in Docker
  • Benennen von Containern und Images in Docker

<<:  HTML ist etwas, das Webseiten-Ersteller lernen und beherrschen müssen.

>>:  js, um einen 3D-Karusselleffekt zu erzielen

Artikel empfehlen

Grundlegende Hinweise zu HTML (empfohlen)

1. Grundstruktur der Webseite: XML/HTML-CodeInhal...

So erstellen Sie https mit Nginx und dem kostenlosen Tencent Cloud-Zertifikat

Ich habe gelernt, wie man https bekommt. Kürzlich...

JavaScript implementiert die Klick-Umschaltfunktion

In diesem Artikelbeispiel wird der spezifische Ja...

Detaillierte Schritte zum Ändern gespeicherter MySQL-Prozeduren

Vorwort Bei der tatsächlichen Entwicklung werden ...

Prioritätsanalyse von und/oder Abfragen in MySQL

Dies ist ein Problem, das leicht übersehen wird. ...

Eine kurze Erläuterung zu „Group By“ in MySQL

Inhaltsverzeichnis 1. Einleitung 2. Bereiten Sie ...

Zusammenfassung zur Anwendung dekorativer Elemente im Webdesign

<br />Vorwort: Bevor Sie dieses Tutorial les...

Farbschemata für Websites Die richtigen Farben für Ihre Website auswählen

Beeinflusst Farbe die Website-Besucher? Vor einig...

Detaillierte Erklärung langsamer MySQL-Abfragen

Informationen zu MySQL-Vorgängen abfragen Status ...