docker save
wird in der Tat einen Tarball produzieren, aber mit allen übergeordneten Ebenen und allen Tags + Versionen.
docker export
produziert auch einen Tarball, aber ohne Schicht / Geschichte.
Es wird oft verwendet, wenn man ein Bild "reduzieren" möchte , wie in " Einen Docker-Container oder ein Bild reduzieren " von Thomas Uhrig dargestellt :
docker export <CONTAINER ID> | docker import - some-image-name:latest
Sobald diese Tarballs hergestellt sind, können sie jedoch geladen / importiert werden:
docker import
Erstellt ein Bild aus einem Tarball, der nicht einmal ein Bild ist (nur ein Dateisystem, das Sie als Bild importieren möchten).
Erstellen Sie ein leeres Dateisystem-Image und importieren Sie den Inhalt des Tarballs
docker load
Erstellt möglicherweise mehrere Bilder aus einem geteerten Repository (da mehrere Bilder in einem Tarball gespeichert werden docker save
können ).
Lädt ein geteertes Repository aus einer Datei oder dem Standardeingabestream
docker image import
ein Synonym fürdocker import
?Als Docker-Neuling habe ich diesen Unterschied auf die harte Tour gelernt .
Auf einem System:
-> Funktioniert gut
Auf demselben System (mit save ):
Auf dem zweiten System (mit Import ):
-> Funktioniert gut, keine Probleme, nur Tag erforderlich:
Auf diesem zweiten System:
Das Suchen nach diesem Fehler brachte mich zu allen möglichen Gründen wie
MountFlags="slave"
, aber der wahre Grund stellte sich als der in diesem Beitrag beschriebene heraus: Ich hätte load anstelle von import verwenden sollen. Da Docker nicht wusste, was los war, brachte mich die Fehlermeldung von Docker in keiner Weise auf den Weg in Richtung "Import", bis ich über diesen Beitrag stolperte.quelle
Der Docker-Import wird hauptsächlich mit einem Tarball verwendet, der aus einem laufenden Container erstellt wird. Zum Beispiel. Docker export containerID> /home/cntr.tar importieren Sie dann diesen Tarball in ein Bild, z. Docker-Import /home/cntr.tar mynewimage: tag
Während Docker Load verwendet wird, um das Bild von einem Tarball zu laden, der aus einem anderen Bild erstellt wurde. Zum Beispiel. Docker speichern> /home/fromimg.tar und dann mit Docker laden </home/fromimg.tar zurückladen
Der Hauptunterschied beim Speichern / Laden des Dockers mit dem Bild bewahrt den Bildverlauf. Während der Docker-Export / -Import mit Container das Bild glättet, indem der gesamte Verlauf des Containers entfernt wird.
quelle