Verwendung des docker buildx history import Befehls zum Importieren der Build-Historie

DockerDockerBeginner
Jetzt üben

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

Einführung

In diesem Lab lernen Sie, wie Sie den Befehl docker buildx history import verwenden, um Build-Historie zu importieren. Wir beginnen mit der Erstellung eines einfachen Dockerfiles, das ein Image auf Basis von Ubuntu erstellt und das Paket curl installiert.

Nach der Erstellung des Dockerfiles werden Sie das Image bauen und dessen Build-Historie exportieren. Abschließend importieren Sie diese Build-Historie in Docker Desktop und überprüfen, ob der Import erfolgreich war. Diese praktische Übung demonstriert die Anwendung des Imports von Build-Historie für bessere Nachvollziehbarkeit und Fehlerbehebung Ihrer Docker-Builds.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/ImageOperationsGroup -.-> docker/images("List Images") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/ls -.-> lab-555050{{"Verwendung des docker buildx history import Befehls zum Importieren der Build-Historie"}} docker/create -.-> lab-555050{{"Verwendung des docker buildx history import Befehls zum Importieren der Build-Historie"}} docker/images -.-> lab-555050{{"Verwendung des docker buildx history import Befehls zum Importieren der Build-Historie"}} docker/build -.-> lab-555050{{"Verwendung des docker buildx history import Befehls zum Importieren der Build-Historie"}} end

Beispiel-Dockerfile erstellen

In diesem Schritt erstellen wir ein einfaches Dockerfile. Ein Dockerfile ist ein Textdokument, das alle Befehle enthält, die ein Benutzer auf der Kommandozeile aufrufen würde, um ein Image zusammenzustellen. Docker kann Images automatisch erstellen, indem es die Anweisungen aus einem Dockerfile liest.

Wir erstellen ein Dockerfile, das ein Image auf Basis des neuesten Ubuntu-Images erstellt und das Paket curl installiert.

Navigieren Sie zunächst in das Verzeichnis ~/project, falls Sie sich nicht bereits dort befinden.

cd ~/project

Erstellen Sie nun eine neue Datei namens Dockerfile im Verzeichnis ~/project mit dem Editor nano.

nano Dockerfile

Fügen Sie im nano-Editor folgenden Inhalt zum Dockerfile hinzu:

FROM ubuntu:latest
RUN apt-get update && apt-get install -y curl

Lassen Sie uns die Anweisungen in diesem Dockerfile aufschlüsseln:

  • FROM ubuntu:latest: Diese Anweisung gibt das Basis-Image für unser neues Image an. Wir verwenden die neueste Version des offiziellen Ubuntu-Images von Docker Hub.
  • RUN apt-get update && apt-get install -y curl: Diese Anweisung führt Befehle in einer neuen Ebene über dem aktuellen Image aus und speichert die Ergebnisse. Hier aktualisieren wir die Paketliste und installieren das Paket curl mit dem Paketmanager apt-get. Das Flag -y beantwortet automatisch alle Eingabeaufforderungen während der Installation mit "Ja".

Nachdem Sie den Inhalt hinzugefügt haben, speichern Sie die Datei und beenden Sie nano durch Drücken von Strg + X, dann Y zum Bestätigen des Speicherns und Eingabe zum Bestätigen des Dateinamens.

Sie können den Inhalt des Dockerfile mit dem Befehl cat überprüfen:

cat Dockerfile

Die Ausgabe sollte den gerade hinzugefügten Inhalt der Datei anzeigen.

Image erstellen und Build-Historie exportieren

In diesem Schritt werden wir ein Docker-Image aus dem im vorherigen Schritt erstellten Dockerfile bauen und anschließend die Build-Historie dieses Images exportieren.

Stellen Sie zunächst sicher, dass Sie sich im Verzeichnis ~/project befinden, wo sich Ihr Dockerfile befindet.

cd ~/project

Nun bauen wir das Docker-Image mit dem Befehl docker build. Wir versehen das Image mit dem Namen my-ubuntu-curl und dem Tag latest. Der Punkt . am Ende des Befehls weist Docker an, im aktuellen Verzeichnis nach dem Dockerfile zu suchen.

docker build -t my-ubuntu-curl:latest .

Sie sehen eine Ausgabe, die den Build-Prozess anzeigt, inklusive des Downloads des Basis-Images und der Ausführung des apt-get-Befehls. Dieser Vorgang kann je nach Internetverbindung einige Minuten dauern.

Nach Abschluss des Builds können Sie überprüfen, ob das Image erstellt wurde, indem Sie Ihre lokalen Docker-Images auflisten:

docker images

In der Liste der Images sollte my-ubuntu-curl erscheinen.

Nun exportieren wir die Build-Historie dieses Images. Die Build-Historie zeigt die Schichten (Layers), aus denen das Image besteht, sowie die Befehle, mit denen jede Schicht erstellt wurde. Wir können diese Historie mit dem Befehl docker history in eine Datei exportieren.

Lassen Sie uns die Historie in eine Datei namens build_history.txt im Verzeichnis ~/project exportieren.

docker history my-ubuntu-curl:latest > build_history.txt

Dieser Befehl schreibt die Ausgabe von docker history my-ubuntu-curl:latest in die Datei build_history.txt.

Sie können den Inhalt der exportierten Historie-Datei mit dem Befehl cat anzeigen:

cat build_history.txt

Die Ausgabe zeigt eine Tabelle mit Informationen zu jeder Schicht im Image, einschließlich der Layer-ID, Erstellungszeit, Größe und des Befehls, mit dem sie erstellt wurde.

Build-Historie in Docker Desktop importieren

In diesem Schritt simulieren wir den Import der im vorherigen Schritt exportierten Build-Historie in Docker Desktop. Obwohl wir in dieser Terminalumgebung nicht direkt mit einer grafischen Docker Desktop-Instanz interagieren können, demonstrieren wir das Konzept und den Dateitransferprozess.

In einem realen Szenario würden Sie nach dem Export der build_history.txt-Datei aus Ihrer Build-Umgebung (wie dieser LabEx VM) diese Datei typischerweise auf den Rechner übertragen, auf dem Docker Desktop installiert ist. Übliche Methoden für den Dateitransfer sind scp, sftp oder Cloud-Speicherdienste.

Für diesen Lab nehmen wir an, dass Sie die build_history.txt-Datei auf Ihren lokalen Rechner mit laufendem Docker Desktop übertragen haben.

Sobald die Datei auf Ihrem lokalen Rechner ist, würden Sie Docker Desktop öffnen. Docker Desktop bietet eine grafische Oberfläche zur Verwaltung Ihrer Docker-Images, Container und Volumes. Obwohl es keinen direkten "Build-Historie importieren"-Button in Docker Desktop gibt, der dieses spezifische Textdateiformat lesen kann, sind die Informationen in build_history.txt wertvoll für das Verständnis des Image-Build-Prozesses.

Entwickler nutzen diese Build-Historie häufig um:

  • Die Schichten eines Images zu verstehen
  • Probleme mit Image-Builds zu debuggen
  • Den Build-Prozess auf einem anderen Rechner nachzuvollziehen
  • Den Image-Erstellungsprozess zu dokumentieren

Um den "Import" zu simulieren und die Build-Historie für den nächsten Verifizierungsschritt verfügbar zu machen, stellen wir einfach sicher, dass die build_history.txt-Datei im Verzeichnis ~/project vorhanden ist - als wäre sie bereit zur Untersuchung oder zur Verwendung durch ein Tool, das sie parsen könnte.

Sie können überprüfen, ob die Datei noch im ~/project-Verzeichnis vorhanden ist:

ls ~/project/build_history.txt

Falls die Datei existiert, gibt der Befehl ihren Pfad aus. Falls nicht, erscheint eine Fehlermeldung.

In einer echten Docker Desktop-Umgebung würden Sie typischerweise die grafische Oberfläche nutzen, um Images und ihre Schichten zu inspizieren - was eine ähnliche Ansicht wie die Informationen in build_history.txt bietet. Einige fortgeschrittene Tools oder Skripte könnten auch verwendet werden, um diese Historiendaten zu parsen und zu visualisieren.

Da wir uns in einer Terminalumgebung befinden, zeigt das Vorhandensein der build_history.txt-Datei am erwarteten Speicherort den erfolgreichen Abschluss dieses Schritts im Kontext des Labs an.

Importierte Build-Historie verifizieren

In diesem letzten Schritt werden wir den Inhalt der Build-Historie-Datei überprüfen, die wir im vorherigen Schritt "importiert" haben (durch Sicherstellung ihrer Existenz). Dies simuliert den Prozess der Untersuchung der Build-Historie in einer Docker Desktop-Umgebung oder mit Tools zur Analyse der exportierten Historie.

Wir verwenden einfache Kommandozeilen-Tools, um zu prüfen, ob die Datei build_history.txt die erwarteten Informationen enthält, insbesondere nach Hinweisen auf das ubuntu Basis-Image und den curl Installationsbefehl.

Stellen Sie zunächst sicher, dass Sie sich im Verzeichnis ~/project befinden.

cd ~/project

Nun verwenden wir den grep-Befehl, um nach Informationen zum Basis-Image in der build_history.txt-Datei zu suchen. Wir erwarten eine Zeile, die die Verwendung des ubuntu-Images anzeigt.

grep "ubuntu" ~/project/build_history.txt

Die Ausgabe sollte eine Zeile mit "ubuntu" enthalten, wahrscheinlich in Bezug auf die ursprüngliche FROM ubuntu:latest-Anweisung in Ihrem Dockerfile.

Als nächstes suchen wir nach dem Befehl, der curl installiert hat. Wir erwarten eine Zeile mit "apt-get install -y curl".

grep "apt-get install -y curl" ~/project/build_history.txt

Die Ausgabe sollte eine Zeile mit dem Befehl zur Installation von curl zeigen.

Diese grep-Befehle demonstrieren, wie Sie Aspekte der Build-Historie programmatisch überprüfen können. In einer echten Docker Desktop-Umgebung würden Sie die Layer und ihre zugehörigen Befehle visuell durch die grafische Oberfläche inspizieren.

Das erfolgreiche Auffinden dieser Schlüsselinformationen in der build_history.txt-Datei bestätigt, dass die Build-Historie korrekt exportiert wurde und zur Untersuchung verfügbar ist, wodurch das Ziel dieses Labs erreicht wird.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man den Befehl docker buildx history import zur Verwaltung der Docker-Build-Historie verwendet. Wir begannen mit der Erstellung eines einfachen Dockerfile basierend auf Ubuntu und der Installation des Pakets curl. Dies veranschaulichte den grundlegenden Prozess der Definition von Image-Layern und Anweisungen.

Nach der Erstellung des Dockerfiles haben wir das Image gebaut und dessen Build-Historie exportiert. Dieser Schritt ist entscheidend, um zu verstehen, wie detaillierte Informationen über den Image-Erstellungsprozess erfasst und gespeichert werden können. Abschließend haben wir diese exportierte Build-Historie in Docker Desktop importiert und verifiziert, dass die Historie erfolgreich integriert wurde. Dies demonstriert die praktische Anwendung des Befehls buildx history import für das Teilen oder Migrieren von Build-Informationen.