So verwenden Sie den Befehl docker manifest annotate, um Plattforminformationen hinzuzufügen

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 manifest annotate verwenden, um Plattforminformationen einer Docker-Manifestliste hinzuzufügen. Wir beginnen damit, eine Manifestliste zu erstellen, die verschiedene Architekturversionen des alpine-Images enthält.

Nachdem die Manifestliste erstellt wurde, üben Sie das Anmerkeln einzelner Manifeste in der Liste, um Architektur, Betriebssystem, Betriebssystemfunktionen, Version und Architekturvarianten anzugeben. Abschließend überprüfen Sie die kommentierte Manifestliste, um die hinzugefügten Plattforminformationen zu verifizieren. Dieser Prozess ist für das effektive Erstellen und Verteilen von Docker-Images für mehrere Architekturen unerlässlich.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/tag("Tag an Image") subgraph Lab Skills docker/inspect -.-> lab-555168{{"So verwenden Sie den Befehl docker manifest annotate, um Plattforminformationen hinzuzufügen"}} docker/pull -.-> lab-555168{{"So verwenden Sie den Befehl docker manifest annotate, um Plattforminformationen hinzuzufügen"}} docker/tag -.-> lab-555168{{"So verwenden Sie den Befehl docker manifest annotate, um Plattforminformationen hinzuzufügen"}} end

Erstellen einer Manifestliste

In diesem Schritt lernen wir, wie man eine Manifestliste erstellt. Eine Manifestliste ist ein Index von Image-Manifesten, der es Ihnen ermöglicht, mehrere Images für verschiedene Architekturen und Betriebssysteme mit einem einzigen Namen zu referenzieren. Dies ist besonders nützlich für die Verteilung von Images für mehrere Architekturen.

Bevor wir eine Manifestliste erstellen, müssen wir einige Images zur Verfügung haben. In diesem Lab verwenden wir das alpine-Image für verschiedene Architekturen. Wir werden die amd64- und arm64-Versionen des alpine-Images herunterladen.

Zuerst laden wir die amd64-Version des alpine-Images herunter:

docker pull alpine:latest

Sie sollten eine Ausgabe sehen, die anzeigt, dass das Image heruntergeladen und extrahiert wird.

Als Nächstes laden wir die arm64-Version des alpine-Images herunter. Beachten Sie, dass wir für diesen Download die Plattform angeben müssen.

docker pull --platform arm64 alpine:latest

Wieder sollten Sie eine Ausgabe sehen, die zeigt, dass das Image heruntergeladen wird.

Jetzt, da wir die Images haben, können wir eine Manifestliste erstellen. Wir verwenden den Befehl docker manifest create. Dieser Befehl erwartet den Namen der Manifestliste, die Sie erstellen möchten, gefolgt von den Namen der Images, die Sie in die Liste aufnehmen möchten.

Erstellen wir eine Manifestliste namens my-alpine-list, die die alpine:latest-Images (amd64) und alpine:latest-Images (arm64) enthält.

docker manifest create my-alpine-list alpine:latest alpine:latest --amend --amend

Die Option --amend wird verwendet, um Einträge in der Manifestliste hinzuzufügen oder zu aktualisieren. Wir verwenden sie hier zweimal, weil wir zwei Images hinzufügen.

Nachdem Sie diesen Befehl ausgeführt haben, haben Sie eine Manifestliste erstellt. Diese Liste wird jedoch derzeit nur lokal gespeichert. In einem späteren Schritt werden wir sie in ein Registry hochladen.

Anmerkung eines Manifests mit Architektur und Betriebssystem

In diesem Schritt werden wir die Manifestliste annotieren, die wir im vorherigen Schritt erstellt haben. Das Anmerkeln eines Manifests ermöglicht es Ihnen, Metadaten hinzuzufügen, wie z. B. die Architektur und das Betriebssystem, für das das Image bestimmt ist. Diese Informationen sind entscheidend für Docker, um das richtige Image aus einer Manifestliste basierend auf der Umgebung auszuwählen, in der der Container ausgeführt wird.

Wir verwenden den Befehl docker manifest annotate, um Architektur- und Betriebssysteminformationen zu den Einträgen in unserer my-alpine-list-Manifestliste hinzuzufügen. Der Befehl erwartet den Namen der Manifestliste, den Namen des Images in der Liste und die Anmerkungsflags.

Zuerst annotieren wir das alpine:latest-Image, das der amd64-Architektur und dem linux-Betriebssystem entspricht.

docker manifest annotate my-alpine-list alpine:latest --arch amd64 --os linux

Dieser Befehl teilt Docker mit, dass das alpine:latest-Image in der my-alpine-list-Manifestliste für die amd64-Architektur und das linux-Betriebssystem bestimmt ist.

Als Nächstes annotieren wir das alpine:latest-Image, das der arm64-Architektur und dem linux-Betriebssystem entspricht.

docker manifest annotate my-alpine-list alpine:latest --arch arm64 --os linux

Dieser Befehl annotiert das andere alpine:latest-Image in der Liste und gibt an, dass es für die arm64-Architektur und das linux-Betriebssystem bestimmt ist.

Indem wir die Manifestliste mit Architektur- und Betriebssysteminformationen annotieren, ermöglichen wir es Docker, automatisch das richtige Image auszuwählen, wenn ein Benutzer my-alpine-list auf einem System mit einer bestimmten Architektur herunterlädt.

Anmerkung eines Manifests mit Betriebssystem-Features und -Version

In diesem Schritt werden wir die Annotation unserer Manifestliste fortsetzen, indem wir Informationen über Betriebssystem-Features und -Version hinzufügen. Obwohl dies für einfache Images wie Alpine weniger üblich ist, können diese Anmerkungen für Images nützlich sein, die bestimmte Betriebssystem-Fähigkeiten oder -Versionen erfordern.

Der Befehl docker manifest annotate ermöglicht es uns, Betriebssystem-Features mit der Option --os-features und die Betriebssystem-Version mit der Option --os-version anzugeben.

Nehmen wir zur Demonstration an, dass unser amd64-Alpine-Image ein bestimmtes Betriebssystem-Feature (z. B. fips) erfordert und für eine bestimmte Betriebssystem-Version (z. B. 1.0) gebaut wurde. Wir werden den amd64-Eintrag in unserer my-alpine-list mit diesen Informationen annotieren.

docker manifest annotate my-alpine-list alpine:latest --arch amd64 --os linux --os-features fips --os-version 1.0

Dieser Befehl aktualisiert die Anmerkung für den amd64-Eintrag in my-alpine-list und fügt das angegebene Betriebssystem-Feature und die -Version hinzu.

In ähnlicher Weise nehmen wir an, dass unser arm64-Alpine-Image ein anderes Betriebssystem-Feature (z. B. selinux) erfordert und für eine andere Betriebssystem-Version (z. B. 2.0) gebaut wurde. Wir werden den arm64-Eintrag annotieren.

docker manifest annotate my-alpine-list alpine:latest --arch arm64 --os linux --os-features selinux --os-version 2.0

Dieser Befehl aktualisiert die Anmerkung für den arm64-Eintrag und fügt sein spezifisches Betriebssystem-Feature und die -Version hinzu.

Durch das Hinzufügen dieser Anmerkungen geben Sie detailliertere Informationen über die Anforderungen und Kompatibilität des Images an, die von Docker oder anderen Tools verwendet werden können, wenn ein Image aus der Manifestliste ausgewählt wird.

Anmerkung eines Manifests mit Architektur-Variante

In diesem Schritt werden wir Informationen zur Architektur-Variante unserer Manifestliste hinzufügen. Architektur-Varianten werden verwendet, um zwischen verschiedenen Versionen oder Implementierungen derselben Architektur zu unterscheiden. Beispielsweise hat die arm-Architektur Varianten wie v6, v7 und v8.

Wir verwenden den Befehl docker manifest annotate mit der Option --variant, um die Architektur-Variante anzugeben.

Nehmen wir an, dass unser arm64-Alpine-Image speziell für die v8-Variante der arm64-Architektur gebaut wurde. Wir werden den arm64-Eintrag in unserer my-alpine-list mit diesen Informationen annotieren.

docker manifest annotate my-alpine-list alpine:latest --arch arm64 --os linux --variant v8

Dieser Befehl aktualisiert die Anmerkung für den arm64-Eintrag in my-alpine-list und fügt die Informationen zur v8-Variante hinzu.

Für die amd64-Architektur sind Varianten weniger üblich, aber Sie können bei Bedarf eine angeben. In diesem Lab werden wir keine Variante zum amd64-Eintrag hinzufügen.

Durch das Hinzufügen von Informationen zur Architektur-Variante geben Sie noch genauere Details zur Kompatibilität des Images an, sodass Docker das am besten geeignete Image für ein bestimmtes System auswählen kann.

Prüfen der annotierten Manifestliste

In diesem letzten Schritt werden wir die von uns erstellte und annotierte Manifestliste prüfen, um die von uns hinzugefügten Informationen zu sehen. Der Befehl docker manifest inspect ermöglicht es Ihnen, die Details einer Manifestliste anzuzeigen, einschließlich der darin enthaltenen Manifeste und ihrer Anmerkungen.

Um unsere my-alpine-list Manifestliste zu prüfen, führen Sie den folgenden Befehl aus:

docker manifest inspect my-alpine-list

Dieser Befehl gibt ein JSON-Dokument aus, das die Manifestliste darstellt. Sie sollten Einträge für sowohl die amd64- als auch die arm64-Images sehen, zusammen mit den Anmerkungen, die wir in den vorherigen Schritten hinzugefügt haben, wie z. B. architecture, os, os.features, os.version und variant.

Suchen Sie im Ausgabeergebnis nach dem manifests-Array. Jedes Objekt in diesem Array repräsentiert ein in der Manifestliste enthaltenes Image. Sie sollten das platform-Feld innerhalb jedes Manifestobjekts finden können, das die Informationen zu architecture, os, os.features und os.version enthält. Für den arm64-Eintrag sollten Sie auch das variant-Feld sehen.

Das Prüfen der Manifestliste ist eine gute Möglichkeit, um zu überprüfen, ob Ihre Anmerkungen korrekt angewendet wurden und ob die Manifestliste wie gewünscht konfiguriert ist.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man eine Docker-Manifestliste erstellt, die als Index für mehrere Image-Manifeste dient und die Verteilung von Multi-Architektur-Images unter einem einzigen Namen ermöglicht. Wir haben begonnen, indem wir alpine-Images für die amd64- und arm64-Architekturen gezogen haben. Anschließend haben wir den Befehl docker manifest create mit der Option --amend verwendet, um eine lokale Manifestliste namens my-alpine-list zu erstellen, die die gezogenen Images enthält.

Nach der Erstellung der Manifestliste haben wir untersucht, wie man einzelne Manifeste innerhalb der Liste mit dem Befehl docker manifest annotate annotiert. Dieser Prozess beinhaltete das Hinzufügen wichtiger Metadaten wie Architektur- und Betriebssysteminformationen. Wir haben speziell gezeigt, wie man ein Manifest mit Architektur- und Betriebssystemdetails annotiert und weiter untersucht, wie man Betriebssystem-Features, -Version und Architektur-Varianteninformationen hinzufügt. Schließlich haben wir gelernt, wie man die annotierte Manifestliste prüft, um die hinzugefügten Metadaten zu überprüfen und sicherzustellen, dass die Liste die Eigenschaften der enthaltenen Images genau widerspiegelt.