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:
- 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.
- 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.
- 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.
- 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.



