Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Was ist der Unterschied zwischen Docker Save und Docker Export?

Was ist der Unterschied zwischen Docker Save und Docker Export?

王林
王林nach vorne
2020-06-17 17:44:084190Durchsuche

Was ist der Unterschied zwischen Docker Save und Docker Export?

Erklären wir zunächst Docker Save bzw. Docker Export:

Docker Save

Docker-Befehlszeilenschnittstelle Das Design ist Sehr elegant, und die Hilfe für viele Befehle kann direkt angezeigt werden, indem am Ende --help hinzugefügt wird.

Die Hilfe von Docker Save ist wie folgt:

>docker save --help
Usage:  docker save [OPTIONS] IMAGE [IMAGE...]
Save one or more images to a tar archive (streamed to STDOUT by default)
Options:
      --help            Print usage
  -o, --output string   Write to a file, instead of STDOUT

Wie aus der Befehlszeilenhilfe ersichtlich ist, ist Docker Save ein Tool zum Packen und Speichern eines oder mehrerer Bilder.

Wenn wir beispielsweise Postgres und Mongo in der Bildbibliothek verpacken möchten, können wir Folgendes ausführen:

docker save -o images.tar postgres:9.6 mongo:3.4

Die gepackte images.tar enthält die beiden Bilder von postgres:9.6 und mongo:3.4 .

Obwohl die Befehlszeilenparameter die Angabe des Bildes erfordern, kann der Container tatsächlich gepackt werden, zum Beispiel:

>docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
3623943d369f        postgres:9.6        "docker-entrypoint..."   3 hours ago         Up 3 hours          5432/tcp            postgres
>docker save -o b.tar postgres
>docker save -o c.tar postgres:9.6
>ls -al
-rwxrwxrwx 1 root root 277886464 8月  26 14:40 b.tar
-rwxrwxrwx 1 root root 277886464 8月  26 14:41 c.tar

Wie Sie dem obigen Befehl entnehmen können, sind b.tar und c. tar sind genau gleich. Dies zeigt, dass Docker Save das Bild hinter dem Container speichert, wenn Docker Save einen Container angibt.

Laden Sie das gepackte Bild mit Docker Load, zum Beispiel:

docker load -i images.tar

Der obige Befehl lädt postgres:9.6 und mongo:3.4, wenn die lokale Bildbibliothek vorhanden ist und wird überschrieben.

Das Anwendungsszenario von Docker Save liegt vor, wenn Ihre Anwendung eine Kombination aus mehreren mithilfe von docker-compose.yml angeordneten Bildern ist, der Client-Server, den Sie bereitstellen möchten, jedoch keine Verbindung zum externen Netzwerk herstellen kann. Zu diesem Zeitpunkt können Sie Docker Save verwenden, um das verwendete Bild zu packen, es dann auf den Client-Server zu kopieren und es mit Docker Load zu laden.

Docker-Export

Überprüfen Sie wie üblich die Hilfe von Docker-Export:

>docker export --help
Usage:  docker export [OPTIONS] CONTAINER
Export a container's filesystem as a tar archive
Options:
      --help            Print usage
  -o, --output string   Write to a file, instead of STDOUT

Wie aus der Hilfe hervorgeht, ist Docker-Export gewohnt Containerdateien konvertieren Das System ist gepackt. Beispiel:

docker export -o postgres-export.tar postgres

Docker-Export muss den Container angeben und kann kein Bild oder Container wie Docker Save angeben.

Laden Sie den gepackten Container mit Docker-Import, zum Beispiel:

docker import postgres-export.tar postgres:latest

Wie aus dem obigen Befehl ersichtlich ist, wird Docker-Import nach dem Importieren des Containers zu einem Image und nicht zu „Wiederherstellen“. ein Behälter.

Ein weiterer Punkt ist, dass der Docker-Import IMAGE[:TAG] angeben kann, was bedeutet, dass wir einen neuen Namen für das Bild angeben können. Wenn in der lokalen Bildbibliothek bereits ein Bild mit demselben Namen vorhanden ist, wird der Name des Originalbilds entfernt und dem neuen Bild zugewiesen. Das Originalbild wird zu einem Geisterbild und kann nur über IMAGE ID bedient werden.

Das Anwendungsszenario des Docker-Exports wird hauptsächlich zum Erstellen eines Basis-Images verwendet. Sie starten beispielsweise einen Container aus einem Ubuntu-Image, installieren dann einige Software, nehmen einige Einstellungen vor und verwenden dann den Docker-Export, um ihn zu speichern als Basisbild. Verteilen Sie dieses Image dann zur Verwendung an andere, beispielsweise als grundlegende Entwicklungsumgebung.

Der Unterschied zwischen Docker Save und Docker Export

  • Docker Save speichert das Bild (Image) und Docker Export speichert den Container (Container) ;

  • Docker Load wird zum Laden von Image-Paketen verwendet, und Docker Import wird zum Laden von Containerpaketen verwendet, aber beide werden in Images wiederhergestellt

  • Docker Load kann das geladene Bild nicht umbenennen, aber Docker Import kann einen neuen Namen für das Bild angeben.

Empfohlenes Tutorial: Docker

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Docker Save und Docker Export?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:juejin.im. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen