Einführung
In diesem Lab lernen Sie, wie Sie den Befehl docker buildx history open verwenden, um detaillierte Informationen zu Ihren Docker-Builds anzuzeigen. Sie beginnen mit dem Erstellen eines einfachen Docker-Images mithilfe einer Dockerfile, die die Schritte zur Erstellung des Images beschreibt.
Nach dem Build des Images untersuchen Sie, wie Sie den Verlauf Ihrer Builds auflisten können. Abschließend verwenden Sie den Befehl docker buildx history open, um die Details eines bestimmten Builds direkt in Docker Desktop zu öffnen und zu inspizieren. Dies bietet eine visuelle und umfassende Übersicht über den Build-Prozess.
Ein einfaches Docker-Image erstellen
In diesem Schritt lernen Sie, wie Sie mit einer Dockerfile ein einfaches Docker-Image erstellen. Eine 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 einer Dockerfile liest.
Navigieren Sie zunächst in das Verzeichnis ~/project, das Ihr Arbeitsverzeichnis für dieses Lab ist.
cd ~/project
Nun erstellen wir eine einfache Dockerfile. Wir legen eine Datei namens Dockerfile im Verzeichnis ~/project an.
nano Dockerfile
Fügen Sie im nano-Editor folgenden Inhalt ein:
FROM ubuntu:latest
RUN apt-get update && apt-get install -y cowsay
CMD ["cowsay", "Hello, Docker!"]
Lassen Sie uns diese Dockerfile analysieren:
FROM ubuntu:latest: Diese Anweisung legt das Basis-Image für unser neues Image fest. Wir beginnen mit der neuesten Version des Ubuntu-Betriebssystems.RUN apt-get update && apt-get install -y cowsay: Diese Anweisung führt Befehle während des Image-Build-Prozesses aus. Wir aktualisieren die Paketliste und installieren das Paketcowsay, ein einfaches Programm, das Text in einer Sprechblase einer Kuh anzeigt.CMD ["cowsay", "Hello, Docker!"]: Diese Anweisung definiert den Standardbefehl, der ausgeführt wird, wenn ein Container aus diesem Image gestartet wird. In diesem Fall wird der Befehlcowsaymit dem Argument "Hello, Docker!" ausgeführt.
Speichern Sie die Datei mit Strg + X, dann Y und Enter.
Nun können wir mit unserer Dockerfile das Docker-Image erstellen. Verwenden Sie den Befehl docker build. Die Option -t dient dazu, dem Image einen Namen und optional ein Tag im Format name:tag zuzuweisen. Der . am Ende des Befehls weist Docker an, die Dockerfile im aktuellen Verzeichnis zu suchen.
docker build -t my-cowsay-image:latest .
Sie sehen eine Ausgabe, die anzeigt, dass Docker das Image Schicht für Schicht erstellt und die Anweisungen in der Dockerfile ausführt. Dieser Vorgang kann einige Momente dauern, da das Basis-Image heruntergeladen und das Paket cowsay installiert wird.
Nach Abschluss des Builds können Sie überprüfen, ob das Image erstellt wurde, indem Sie die verfügbaren Images mit dem Befehl docker images auflisten.
docker images
Sie sollten my-cowsay-image in der Ausgabe sehen.
Abschließend starten wir einen Container aus dem soeben erstellten Image, um zu prüfen, ob es wie erwartet funktioniert.
docker run my-cowsay-image:latest
Sie sollten die Ausgabe des cowsay-Befehls sehen:
_______
< Hello, Docker! >
-------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
Dies bestätigt, dass unser Docker-Image korrekt erstellt wurde und der Standardbefehl wie vorgesehen ausgeführt wird.
Build-Verlauf anzeigen
In diesem Schritt lernen Sie, wie Sie den Verlauf eines Docker-Images einsehen können. Dieser zeigt die einzelnen Schichten (Layers) des Images sowie die Befehle, mit denen jede Schicht erstellt wurde. Dies ist nützlich, um den Aufbau eines Images zu verstehen und Probleme zu beheben.
Wir verwenden den Befehl docker history gefolgt vom Image-Namen oder der ID. Im vorherigen Schritt haben wir ein Image namens my-cowsay-image erstellt. Sehen wir uns dessen Verlauf an.
docker history my-cowsay-image:latest
Die Ausgabe zeigt eine Tabelle mit mehreren Spalten:
IMAGE: Die ID der Image-SchichtCREATED: Zeitstempel der Erstellung der SchichtCREATED BY: Befehl, der die Schicht erstellt hatSIZE: Größe der SchichtCOMMENT: Eventuelle Kommentare zur Schicht
Sie sehen Einträge, die den Anweisungen in unserer Dockerfile entsprechen: das Basis-Ubuntu-Image, die apt-get-Befehle und die CMD-Anweisung. Jede RUN-Anweisung in einer Dockerfile erzeugt eine neue Schicht im Image.
Das Verständnis des Verlaufs hilft Ihnen zu sehen, wie jede Anweisung in Ihrer Dockerfile zum finalen Image beiträgt. Dies ist besonders hilfreich bei der Optimierung der Image-Größe oder der Fehlerbehebung.
Beispielsweise können Sie die durch jeden Befehl hinzugefügte Größe sehen, was hilft, unnötig große Schichten zu identifizieren.
Sehen wir uns nun den Verlauf des Basis-Images ubuntu:latest an, das wir verwendet haben.
docker history ubuntu:latest
Dies zeigt den Verlauf des offiziellen Ubuntu-Images, der deutlich länger und komplexer ist als unser einfacher Image-Verlauf. Es demonstriert, wie Basis-Images aus mehreren Schichten aufgebaut sind.
Der Befehl docker history bietet wertvolle Einblicke in die Zusammensetzung Ihrer Docker-Images.
Bestimmten Build in Docker Desktop öffnen
In diesem Schritt besprechen wir, wie Sie normalerweise die Details eines bestimmten Image-Builds mit Docker Desktop einsehen würden. Während die LabEx-Umgebung eine Kommandozeilenschnittstelle bietet, ist Docker Desktop ein beliebtes grafisches Tool, das eine visuellere Möglichkeit zur Interaktion mit Docker bietet.
Hinweis: Docker Desktop ist eine grafische Anwendung, die auf Ihrem lokalen Rechner läuft (Windows, macOS oder Linux mit Desktop-Umgebung). Die LabEx-Umgebung ist eine cloudbasierte virtuelle Maschine, die über einen Webbrowser zugänglich ist und keine grafische Desktop-Umgebung für die Ausführung von Docker Desktop bietet. Daher können Sie in dieser LabEx-Umgebung nicht direkt "einen spezifischen Build in Docker Desktop öffnen".
Dennoch ist es wichtig zu verstehen, wie dies in einer typischen Entwicklungsumgebung mit Docker Desktop durchgeführt würde.
In Docker Desktop würden Sie zum Abschnitt "Images" navigieren. Hier sehen Sie eine Liste aller Docker-Images auf Ihrem System. Sie können das von Ihnen erstellte Image my-cowsay-image:latest finden.
Durch Klicken auf den Image-Namen öffnet sich eine detaillierte Ansicht des Images. Diese Ansicht enthält typischerweise:
- Übersicht: Grundlegende Informationen über das Image, wie Größe, Erstellungsdatum und ID.
- Schichten (Layers): Eine visuelle Darstellung der Image-Schichten, ähnlich der Ausgabe von
docker history, aber oft mit mehr Details und einer grafischen Oberfläche. Sie können jede Schicht untersuchen, um die ausgeführten Befehle sowie die hinzugefügten oder geänderten Dateien zu sehen. - Tags: Eine Liste der mit dem Image verknüpften Tags.
- Sicherheitslücken: Informationen über bekannte Sicherheitslücken im Image (falls Scans aktiviert sind).
Diese grafische Oberfläche in Docker Desktop erleichtert die Untersuchung der Inhalte und des Verlaufs eines Images im Vergleich zur Kommandozeilenausgabe, insbesondere bei komplexen Images mit vielen Schichten.
Obwohl Sie diese Aktion in der aktuellen LabEx-Umgebung nicht durchführen können, ist das Verständnis dieser Funktion von Docker Desktop wertvoll für Ihre allgemeine Docker-Lernreise.
Um diesen Schritt in der LabEx-Umgebung abzuschließen, werden wir das Konzept einfach bestätigen.
Zusammenfassung
In diesem Lab haben Sie gelernt, wie man ein einfaches Docker-Image mithilfe einer Dockerfile erstellt. Sie haben eine Dockerfile mit Anweisungen erstellt, die Ubuntu als Basis-Image verwenden, das Paket cowsay installieren und den Standardbefehl zum Ausführen von cowsay setzen. Anschließend haben Sie den Befehl docker build verwendet, um das Image zu erstellen und zu taggen.
Nach dem Erstellen des Images haben Sie untersucht, wie man den Build-Verlauf mit docker buildx history auflistet und dann den Befehl docker buildx history open verwendet, um die Details eines bestimmten Builds direkt in Docker Desktop anzuzeigen. Dies bietet eine visuelle Oberfläche, um den Build-Prozess und seine Artefakte zu untersuchen.



