GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

So verwenden Sie Docker:Bild speichern und zum Teilen exportieren

Wenn Docker neu für Sie ist, müssen Sie möglicherweise noch herausfinden, wie Sie Container und Images mit anderen Entwicklern oder Computern teilen können. Aber ist es möglich, Container zu teilen? Ja! Lassen Sie den docker save image-Befehl und den docker export Bildbefehl macht den Trick!

In diesem Tutorial erfahren Sie, wie Sie Container und Bilder zum Teilen speichern und exportieren, indem Sie Docker-Befehle ausführen.

Bereit? Fangen wir an!

Voraussetzungen

Dieses Tutorial wird eine praktische Demonstration sein. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie Folgendes haben:

  • In diesem Tutorial wird Docker Desktop oder Engine, installiert als Version 20.10.7, verwendet.
  • Jedes Docker-kompatible Betriebssystem, Ubuntu wird in diesem Tutorial verwendet.

Erstellen einer Basis-Docker-Anwendung

Bevor Sie mit dem Exportieren oder Speichern von Docker-Containern und -Images beginnen, müssen Sie zunächst eine Anwendung erstellen, die Sie für Freigabezwecke verwenden. Sie erstellen eine einfache arithmetische Lösung als Docker-Beispielanwendung über eine Befehlszeilenumgebung.

1. Erstellen Sie eine Datei für Ihr Projekt mit dem Namen Dockerfile , und fügen Sie den folgenden Code in die neu erstellte Dockerfile ein .

Der folgende Code führt eine grundlegende arithmetische Operation aus, die zu einem Wert von 10 führt.

# busybox provides Unix utilities in a single executable file, 
# which enables you to do some arithmetic.
FROM busybox
# Performs a basic arithmetic operation that results in a value of 10.
CMD echo $(((20*5)/10))

2. Als nächstes öffnen Sie Ihr Terminal und führen den docker build aus Befehl unten, um die Anwendung mit dem Namen (arithmetic ) im Arbeitsspeicherort (. ).

docker build --tag arithmetic .

Wenn Sie Linux verwenden, müssen Sie möglicherweise den sudo-Befehl voranstellen, um zu vermeiden, dass der Fehler „Zugriff verweigert“ angezeigt wird, wie dieser:sudo docker build --tag arithmetic . sudo hinzufügen Befehl erhöht den Befehl als Administrator.

3. Führen Sie den folgenden Befehl aus, um die von Ihnen erstellte Docker-Anwendung auszuführen (arithmetic ). Beim Ausführen der Docker-App wird auch automatisch ein Container für Ihre Anwendung erstellt.

docker run arithmetic

Docker-Container exportieren

Nachdem Sie nun eine Basis-Docker-Anwendung haben, ist es an der Zeit, den Export eines Docker-Containers zu behandeln. Das Erstellen einer riesigen Anwendung dauert lange und kann mühsam sein, wenn Sie den Container nur mit Ihrem Team teilen möchten. Gibt es also eine schnellere Möglichkeit, den Container zu teilen? Ja!

Anstatt die Anwendung direkt aus einer Docker-Datei zu erstellen, exportieren Sie den Docker-Container.

1. Führen Sie den docker aus Befehl unten, um alle aufzulisten (ls --all ) containers auf Ihrer Maschine verfügbar. Notieren Sie sich die CONTAINER ID des Containers, den Sie freigeben möchten, da Sie ihn im nächsten Schritt zum Exportieren des Containers benötigen.

Beachten Sie, dass Sie nur Container exportieren können, keine Bilder.

docker container ls --all

2. Führen Sie als Nächstes den folgenden Befehl zum export aus den Docker-Container Ihrer Wahl (container-id ). Ersetzen Sie container-id mit der Container-ID, die Sie sich in Schritt 1 notiert haben.

Beim Exportieren speichern Sie das Dateisystem des Containers in einer .tar Archiv (arithmetic.tar ).

docker export container-id > arithmetic.tar

3. Überprüfen Sie schließlich Ihren Projektordner in Ihrem Dateimanager und Sie werden sehen, dass eine neue .tar Archiv wurde erstellt (arithmetic.tar ). Da Sie den Container in eine .tar exportiert haben archivieren, können Sie es jetzt mit jedem teilen.

Importieren von Docker-Containern

Anstatt zu exportieren, müssen Sie vielleicht einen Docker-Container importieren, den ein Teamkollege mit Ihnen geteilt hat. Wenn ja, den docker import Befehl ist, was Sie brauchen. Der docker import Der Befehl nimmt das exportierte Dateisystem und konvertiert es in ein Bilddateisystem, das Sie auf Ihrem Computer ausführen können.

1. Führen Sie den folgenden docker aus Befehl zum import ein Container (arithmetic.tar ) und in ein Bild umwandeln. Beim Import müssen Sie ein Tag anhängen (latest ) und benennen Sie das Bild (put_any_name_here ), Wie nachfolgend dargestellt.

docker import arithmetic.tar put_any_name_here:latest

2. Führen Sie als Nächstes den folgenden Befehl aus, um alle vorhandenen Docker-Images aufzulisten, damit Sie überprüfen können, ob ein neues Image vorhanden ist.

docker images

Unten sehen Sie, dass ein neues Docker-Image vorhanden ist.

3. Führen Sie nun den docker run aus Befehl unten, um die Shell zu öffnen (sh ) für das importierte Bild. Der Container läuft interaktiv und wird an Ihr Terminal angehängt (-i und -t Flaggen).

 docker run -i -t put_any_name_here:latest sh

Sie können an der Eingabeaufforderung unten (/ #) erkennen, dass Sie sich jetzt in der Shell des importierten Bildes befinden.

4. Führen Sie abschließend den folgenden Befehl aus, um zu sehen, ob das Bild wie erwartet funktioniert.

echo $(((20*5)/10))

Wenn das Bild funktioniert, erhalten Sie eine Ausgabe von 10 , Wie nachfolgend dargestellt.

Wenn Sie versuchen, das Image direkt auszuführen, erhalten Sie einen Fehler, wie unten gezeigt, da das importierte Image ein Dateisystem-Image ist.

Speichern von Bildern über Docker Save Image

Vielleicht möchten Sie lieber ein Docker-Image als einen Container speichern. Wenn ja, gehen Sie mit dem docker save Bildbefehl stattdessen. Im Gegensatz zum docker export Befehl, der docker save Mit dem Befehl können Sie ein oder mehrere Bilder direkt in einem tar-Archiv speichern und mit anderen teilen.

Beachten Sie, dass Sie nur Docker-Images speichern und laden können, keine Container.

  1. Führen Sie den folgenden Befehl aus, um ein Docker-Image (arithmetisch) in Ihrer bevorzugten .tar-Datei zu speichern Archiv (arm_image.tar ). Sie können jetzt die .tar-Datei teilen mit anderen Entwicklern archivieren, damit sie das Bild laden können.
docker save arithmetic > arm_image.tar

2. Führen Sie nun den folgenden Befehl aus, um ein Verzeichnis mit dem Namen Ihrer Wahl zu erstellen (mkdir arm ). Aber für diese Demo heißt das Verzeichnis arm . Der Befehl extrahiert dann das Bild aus der .tar Archiv (-xf arm_image.tar ) in das neue Verzeichnis (arm ).

Extrahieren des Inhalts der .tar Archiv können Sie überprüfen, ob das Bild, das Sie in der .tar gespeichert haben Archiv existiert.

mkdir arm && tar -xf arm_image.tar -C arm

3. Führen Sie abschließend den tree aus Befehl unten, um den Verzeichnisbaum des Bildes anzuzeigen, das Sie in ~/arm extrahiert haben Verzeichnis. tree ~/arm

Unten sehen Sie die Dateien und Unterverzeichnisse in dem Verzeichnis, in das Sie das Docker-Image extrahiert haben.

Wenn Sie vorhaben, Ihr Docker-Image auf dem Docker-Hub freizugeben, führen Sie am besten docker save aus Befehl. Wieso den? Mit dem docker save command , speichern Sie das Bild im Wesentlichen genau so, wie es ausgeführt werden soll. Außerdem können Sie Bilder nur auf dem Docker-Hub posten, also auf jeden Fall den docker export command ist keine gute Option.

Laden von Docker-Images

Angenommen, Sie haben bereits ein Image zu Sicherungs- oder Freigabezwecken gespeichert, wie würden Sie es auf einen Computer laden? Keine Sorge, der docker load Befehl kann helfen. Das docker load Mit dem Befehl können Sie ein Image oder Repository auf Ihren Computer laden und sowohl Images als auch Tags wiederherstellen.

Um besser zu sehen, wie der docker load Befehl funktioniert, löschen Sie alle Docker-Images, die Sie zuvor erstellt haben.

1. Führen Sie den folgenden Befehl aus, um alle Docker-images aufzulisten in Ihrer Maschine.

docker images

Unten sehen Sie, dass es zwei verfügbare Bilder gibt. Notieren Sie sich die BILD-ID jedes Bildes da Sie diese Bilder im nächsten Schritt löschen werden.

2. Führen Sie den folgenden Befehl aus, um (rm ) Docker-Images nach den von Ihnen angegebenen Image-IDs. Ersetzen Sie imageID1 und imageID2 mit den Bild-IDs, die Sie sich in Schritt 1 notiert haben.

docker image rm imageID1 imageID2

3. Führen Sie nun den docker load aus Befehl unten, um ein Bild aus einer .tar-Datei zu laden Archiv (arm_image.tar ).

docker load < arm_image.tar

4. Führen Sie die docker images erneut aus Befehl, wie Sie es in Schritt eins getan haben, um alle verfügbaren Images auf Ihrem Computer aufzulisten. docker images

docker images

Unten sehen Sie das neu geladene Bild.

5. Führen Sie schließlich den folgenden Befehl aus, um ihn auszuführen und zu testen, ob das Bild funktioniert.

docker run arithmetic

Beachten Sie, dass der Befehl einen Wert von 10 zurückgegeben hat, was darauf hinweist, dass das geladene Bild funktioniert.

Schlussfolgerung

In diesem Lernprogramm haben Sie gelernt, wie Sie Container exportieren und importieren sowie Bilder laden und speichern. Sie sollten jetzt über grundlegende Kenntnisse zum Konvertieren Ihrer Docker-Speicherimages und -Container in eine gemeinsam nutzbare Form, z. B. eine TAR-Datei, verfügen.

Irgendwann müssen Sie Ihr Docker-Image oder Ihren Container freigeben. Wie wollen Sie nun dieses neu gewonnene Wissen in die Arbeit mit Docker-Containern und -Images integrieren, vielleicht in ein Backup-System?


Docker
  1. So exportieren und importieren Sie Docker-Container

  2. So verwenden Sie ein Dockerfile zum Erstellen eines Docker-Images

  3. Wie und warum man einen Remote-Docker-Host verwendet

  4. So installieren und verwenden Sie Docker Compose unter CentOS

  5. So erstellen Sie ein Docker-Image aus einem Container und einer Docker-Datei

Was ist Docker Compose und wie wird es verwendet?

So verwenden Sie Docker Cp zum Kopieren von Dateien zwischen Host und Containern

So erstellen Sie ein Docker-Image aus einem laufenden Container

So stellen Sie einen Docker-MongoDB-Container bereit und verwalten ihn

So verwenden Sie Docker Commit zum Ändern von Container-Images

So installieren und verwenden Sie Docker unter Ubuntu 20.04