Beenende Docker-Images speichern und exportieren

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Dieses Tutorial führt Sie durch den Prozess des Speicherns und Exportierens beendeter Docker-Images. Sie lernen, beendete Docker-Images zu identifizieren und aufzulisten, sie in eine Datei zu speichern und anschließend die gespeicherten Images zu importieren und zu laden. Dieses Wissen hilft Ihnen, Ihren Workflow zur Verwaltung von Docker-Images zu optimieren und Ihre Docker-Umgebung effizient zu verwalten.

Einführung in Docker-Images

Docker ist eine beliebte Containerisierungsplattform, die es Entwicklern ermöglicht, ihre Anwendungen und Abhängigkeiten in leichte, portablen und selbstkonsistente Einheiten, sogenannte Docker-Images, zu verpacken. Diese Images können einfach geteilt, bereitgestellt und auf jedem System ausgeführt werden, auf dem Docker installiert ist, unabhängig vom zugrunde liegenden Betriebssystem oder der Hardware.

Docker-Images bilden die Grundlage des Docker-Ökosystems, und das Verständnis ihrer Struktur und Verwaltung ist entscheidend für die effektive Arbeit mit Docker. Ein Docker-Image ist im Wesentlichen eine schreibgeschützte Vorlage, die die notwendigen Dateien, Bibliotheken und Abhängigkeiten enthält, die zum Ausführen einer bestimmten Anwendung oder eines bestimmten Dienstes erforderlich sind.

Wenn Sie einen Docker-Container ausführen, basiert dieser auf einem Docker-Image. Der Container erbt alle Eigenschaften und Konfigurationen des Images, wodurch eine konsistente und reproduzierbare Laufzeitumgebung sichergestellt wird. Dies erleichtert die Bereitstellung und Skalierung von Anwendungen über verschiedene Umgebungen hinweg, von der Entwicklung bis zur Produktion.

graph TD A[Docker Image] --> B[Docker Container] B --> C[Auszuführende Anwendung]

Um ein Docker-Image zu erstellen, können Sie ein Dockerfile verwenden, eine textbasierte Skriptdatei, die die Schritte zur Erstellung des Images definiert. Das Dockerfile gibt das Basis-Image an, installiert notwendige Software, kopiert Anwendungscode und konfiguriert die Laufzeitumgebung.

FROM ubuntu:22.04
RUN apt-get update && apt-get install -y nginx
COPY index.html /usr/share/nginx/html/
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Sobald ein Docker-Image erstellt wurde, kann es über Docker-Registrierungen wie Docker Hub oder private Registrierungen geteilt und verteilt werden. Dies ermöglicht es Entwicklern und Teams, zusammenzuarbeiten und vorhandene Images wiederzuverwenden, was die Effizienz und Konsistenz in verschiedenen Umgebungen verbessert.

Identifizieren und Auflisten beendeter Docker-Images

Bei der Arbeit mit Docker kommt es häufig zu beendeten Docker-Images – Images, die gestoppt oder vom System entfernt wurden. Diese beendeten Images können wertvollen Speicherplatz belegen und müssen möglicherweise verwaltet oder entfernt werden, um eine saubere und effiziente Docker-Umgebung zu gewährleisten.

Um beendete Docker-Images zu identifizieren und aufzulisten, können Sie die folgenden Docker-Befehle verwenden:

Auflisten beendeter Docker-Container

Sie können den Befehl docker ps -a verwenden, um alle Docker-Container aufzulisten, einschließlich derer, die beendet wurden. Dies liefert Ihnen die Container-ID, den Namen des Images und den Status jedes Containers.

$ docker ps -a
CONTAINER ID   IMAGE         COMMAND                  CREATED         STATUS                     PORTS     NAMES
a1b2c3d4e5f6   nginx:latest  "nginx -g 'daemon off"   10 minutes ago  Exited (0) 5 minutes ago             my-nginx-container

Im obigen Beispiel ist der Container my-nginx-container beendet.

Auflisten beendeter Docker-Images

Um die beendeten Docker-Images aufzulisten, die nicht mehr mit einem laufenden Container verknüpft sind, können Sie den Befehl docker images mit der Option --filter verwenden:

$ docker images --filter "dangling=true"
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
<none>       <none>    a1b2c3d4e5f6   10 minutes ago 133MB

Dies zeigt alle beendeten Docker-Images an, die nicht mehr mit einem laufenden Container verknüpft sind.

Alternativ können Sie den Befehl docker image ls mit der Option --filter verwenden, um dasselbe Ergebnis zu erzielen:

$ docker image ls --filter "dangling=true"
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
<none>       <none>    a1b2c3d4e5f6   10 minutes ago 133MB

Die Option --filter "dangling=true" filtert die Ausgabe, um nur die beendeten Docker-Images anzuzeigen, die derzeit nicht mit laufenden Containern verknüpft sind.

Durch die Identifizierung und Auflistung beendeter Docker-Images können Sie diese dann nach Bedarf speichern, exportieren oder entfernen, um eine saubere und effiziente Docker-Umgebung zu gewährleisten.

Speichern beendeter Docker-Images in einer Datei

Nachdem Sie beendete Docker-Images identifiziert und aufgelistet haben, möchten Sie diese möglicherweise für Backups, die Verteilung oder die zukünftige Verwendung in einer Datei speichern. Der Befehl docker save ermöglicht es Ihnen, ein oder mehrere Docker-Images in einer komprimierten Tar-Archivdatei zu speichern.

Speichern eines einzelnen beendeten Docker-Images

Um ein einzelnes beendetes Docker-Image in einer Datei zu speichern, verwenden Sie den folgenden Befehl:

$ docker save -o my-image.tar <image-name>

Ersetzen Sie <image-name> durch den Namen oder die ID des beendeten Docker-Images, das Sie speichern möchten.

Um beispielsweise das Image nginx:latest in eine Datei namens my-nginx-image.tar zu speichern:

$ docker save -o my-nginx-image.tar nginx:latest

Speichern mehrerer beendeter Docker-Images

Wenn Sie mehrere beendete Docker-Images speichern möchten, können Sie eine durch Leerzeichen getrennte Liste der Imagenamen oder -IDs angeben:

$ docker save -o my-images.tar <image1-name> <image2-name> <image3-name>

Dies speichert alle angegebenen Images in der Datei my-images.tar.

Überprüfen des gespeicherten Images

Sie können den Inhalt der gespeicherten Imagedatei überprüfen, indem Sie die Dateien im Tar-Archiv auflisten:

$ tar tf my-image.tar

Dies zeigt den Inhalt der Datei my-image.tar an und zeigt die Layers und Metadaten des gespeicherten Docker-Images.

Durch das Speichern beendeter Docker-Images in einer Datei können Sie diese Images problemlos archivieren, verteilen oder wiederherstellen, um sicherzustellen, dass Ihre Docker-Umgebung organisiert und effizient bleibt.

Exportieren beendeter Docker-Container als Archiv

Zusätzlich zum Speichern beendeter Docker-Images in einer Datei können Sie diese auch als komprimiertes Archiv mit dem Befehl docker export exportieren. Dieser Prozess erstellt eine einzelne Datei, die das vollständige Dateisystem des beendeten Containers enthält, was für die Freigabe oder Wiederherstellung des Containerzustands nützlich sein kann.

Exportieren eines einzelnen beendeten Docker-Containers

Um einen einzelnen beendeten Docker-Container als Archiv zu exportieren, verwenden Sie den folgenden Befehl:

$ docker export -o my-container.tar <container-id>

Ersetzen Sie <container-id> durch die ID oder den Namen des beendeten Docker-Containers, den Sie exportieren möchten.

Um beispielsweise den Container my-nginx-container als Archivdatei namens my-nginx-container.tar zu exportieren:

$ docker export -o my-nginx-container.tar my-nginx-container

Exportieren mehrerer beendeter Docker-Container

Wenn Sie mehrere beendete Docker-Container exportieren möchten, können Sie eine Schleife verwenden, um den Prozess zu automatisieren:

$ for container in $(docker ps -a -q --filter "status=exited"); do
    docker export -o "${container}.tar" "$container"
  done

Dieses Skript exportiert jeden beendeten Docker-Container in eine separate Tar-Archivdatei, wobei die Container-ID als Dateiname verwendet wird.

Überprüfen des exportierten Archivs

Sie können den Inhalt des exportierten Archivs überprüfen, indem Sie die Dateien im Tar-Archiv auflisten:

$ tar tf my-container.tar

Dies zeigt den Inhalt der Datei my-container.tar an und zeigt die Dateisystemstruktur des exportierten Docker-Containers.

Das Exportieren beendeter Docker-Container als Archive kann für Backups, Migrationen oder zur Fehlerbehebung nützlich sein, da die exportierte Datei den vollständigen Zustand des Containers, einschließlich seines Dateisystems und seiner Konfiguration, enthält.

Importieren und Laden gespeicherter Docker-Images

Nachdem Sie beendete Docker-Images gespeichert oder exportiert haben, müssen Sie diese möglicherweise wieder in Ihre Docker-Umgebung importieren oder laden. Dies kann nützlich sein, um Images wiederherzustellen, sie mit anderen zu teilen oder zwischen verschiedenen Systemen zu verschieben.

Importieren eines gespeicherten Docker-Images

Um ein Docker-Image zu importieren, das in einer Datei gespeichert wurde, verwenden Sie den Befehl docker load:

$ docker load -i my-image.tar

Dadurch wird das Docker-Image aus der Datei my-image.tar geladen und Ihrem lokalen Docker-Image-Repository hinzugefügt.

Sie können das importierte Image überprüfen, indem Sie die Docker-Images auf Ihrem System auflisten:

$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    a1b2c3d4e5f6   10 minutes ago 133MB

Laden eines exportierten Docker-Container-Archivs

Wenn Sie einen Docker-Container als Archivdatei exportiert haben, können Sie ihn mit dem Befehl docker import wieder in Ihre Docker-Umgebung laden:

$ docker import - my-container:latest < my-container.tar

Dadurch wird aus dem Inhalt des Archivs my-container.tar ein neues Docker-Image mit dem Namen my-container:latest erstellt.

Sie können dieses Image dann verwenden, um einen neuen Container zu erstellen oder dessen Inhalt zu untersuchen:

$ docker run -d my-container:latest
$ docker inspect my-container:latest

Vorteile des Importieren und Ladens gespeicherter Images

Das Importieren und Laden gespeicherter Docker-Images kann in mehrfacher Hinsicht von Vorteil sein:

  1. Portabilität: Gespeicherte Images können einfach zwischen verschiedenen Docker-Umgebungen geteilt und übertragen werden, was eine konsistente Bereitstellung über Entwicklungs-, Test- und Produktionssysteme ermöglicht.
  2. Backup und Wiederherstellung: Gespeicherte Images können als Backup verwendet werden, sodass Sie Ihre Docker-Umgebung bei Bedarf auf einen bekannten Zustand zurücksetzen können.
  3. Offline-Bereitstellung: Gespeicherte Images können verwendet werden, um Anwendungen in Umgebungen mit eingeschränktem oder keinem Internetzugang bereitzustellen, da das Image alle notwendigen Komponenten enthält.
  4. Reduzierte Build-Zeiten: Das Laden eines gespeicherten Images kann schneller sein als das Neuladen des Images von Grund auf, insbesondere bei komplexen oder großen Anwendungen.

Durch das Verständnis des Importens und Ladens gespeicherter Docker-Images können Sie Ihren Docker-Workflow optimieren und die Portabilität und Zuverlässigkeit Ihrer containerisierten Anwendungen gewährleisten.

Zusammenfassung

In diesem Tutorial haben Sie gelernt, wie Sie beendete Docker-Images speichern und exportieren. Sie können nun beendete Images identifizieren, auflisten, in eine Datei speichern und die gespeicherten Images importieren/laden. Dieser Prozess ermöglicht es Ihnen, Ihre Docker-Images effizient zu verwalten und sicherzustellen, dass Sie auf benötigte beendete Images problemlos zugreifen und sie wiederverwenden können. Durch die Beherrschung dieser Techniken können Sie die Verwaltung Ihrer Docker-Images optimieren und die Gesamteffizienz Ihrer Docker-basierten Anwendungen verbessern.