Verwendung des docker buildx create Befehls zur Builder-Verwaltung

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 Docker Builder effektiv mit dem Befehl docker buildx create verwalten können. Wir behandeln die wesentlichen Schritte zum Erstellen einer neuen Builder-Instanz, zum Hinzufügen neuer Knoten zu einem bestehenden Builder, zum Festlegen benutzerdefinierter Namen für Builder und Knoten, zum Konfigurieren der unterstützten Plattformen für einen Build-Knoten sowie zum automatischen Wechseln zu einem neu erstellten Builder für Ihre Build-Operationen. Am Ende dieses Labs verfügen Sie über ein fundiertes Verständnis, wie Sie verschiedene Builder-Konfigurationen für Multi-Architektur- und verteilte Builds einrichten und nutzen können.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") subgraph Lab Skills docker/ls -.-> lab-555046{{"Verwendung des docker buildx create Befehls zur Builder-Verwaltung"}} docker/rm -.-> lab-555046{{"Verwendung des docker buildx create Befehls zur Builder-Verwaltung"}} docker/inspect -.-> lab-555046{{"Verwendung des docker buildx create Befehls zur Builder-Verwaltung"}} docker/create -.-> lab-555046{{"Verwendung des docker buildx create Befehls zur Builder-Verwaltung"}} end

Eine neue Builder-Instanz erstellen

In diesem Schritt lernen Sie, wie Sie eine neue Builder-Instanz mit dem Befehl docker buildx create erstellen. Eine Builder-Instanz ist ein Docker-Objekt, das mehrere Build-Knoten verwaltet. Jeder Knoten kann eine unterschiedliche Architektur oder Umgebung für den Image-Build repräsentieren.

Bevor wir einen neuen Builder erstellen, überprüfen wir die vorhandenen Builder auf Ihrem System. Dies können Sie mit dem Befehl docker buildx ls tun.

docker buildx ls

Sie sollten die standardmäßige Builder-Instanz sehen, die normalerweise den Namen default trägt.

Nun erstellen wir eine neue Builder-Instanz. Wir nennen diesen neuen Builder mybuilder.

docker buildx create --name mybuilder

Dieser Befehl erstellt eine neue Builder-Instanz mit dem Namen mybuilder. Standardmäßig hat dieser neue Builder noch keine zugeordneten Knoten. Wir werden in den nächsten Schritten Knoten hinzufügen.

Nachdem der neue Builder erstellt wurde, können Sie die Builder erneut auflisten, um den neu erstellten zu sehen.

docker buildx ls

Sie sollten nun sowohl den default-Builder als auch den mybuilder-Builder aufgelistet sehen. Der mybuilder-Builder wird vorerst als inaktiv angezeigt, da er noch keine aktiven Knoten besitzt.

Einen neuen Knoten zu einem bestehenden Builder hinzufügen

Im vorherigen Schritt haben wir eine neue Builder-Instanz namens mybuilder erstellt. Aktuell besitzt dieser Builder noch keine Build-Knoten. In diesem Schritt werden wir einen neuen Knoten zu diesem bestehenden Builder hinzufügen.

Ein Build-Knoten ist im Wesentlichen ein Docker-Endpunkt, auf dem der Build-Prozess ausgeführt wird. Standardmäßig wird ein neuer Builder ohne aktive Knoten erstellt, wenn kein Knoten explizit angegeben wird.

Um einen neuen Knoten zum mybuilder-Builder hinzuzufügen, verwenden wir erneut den Befehl docker buildx create, diesmal jedoch mit dem --append-Flag, um den Ziel-Builder anzugeben. Wir fügen einen Knoten zum mybuilder-Builder hinzu.

docker buildx create --name mybuilder --append

Dieser Befehl fügt dem mybuilder-Builder einen neuen Knoten hinzu. Wenn kein Name angegeben wird, generiert Docker Buildx automatisch einen Namen für den Knoten.

Lassen Sie uns die Builder erneut auflisten, um die aktualisierte mybuilder-Instanz mit dem neuen Knoten zu sehen.

docker buildx ls

Sie sollten nun mybuilder mit einem untergeordneten Knoten sehen. Der Knoten hat einen generierten Namen und befindet sich wahrscheinlich im Status "running".

Namen für Builder und Knoten festlegen

In den vorherigen Schritten haben wir einen Builder namens mybuilder erstellt und einen Knoten hinzugefügt. Dem Knoten wurde automatisch ein generierter Name zugewiesen. In diesem Schritt lernen wir, wie wir beim Erstellen sowohl für den Builder als auch für den Knoten benutzerdefinierte Namen vergeben können.

Zuerst entfernen wir den mybuilder-Builder aus den vorherigen Schritten, um neu beginnen zu können.

docker buildx rm mybuilder

Nun erstellen wir eine neue Builder-Instanz mit dem Namen custombuilder und vergeben gleichzeitig den Namen node1 für den initialen Knoten innerhalb dieses Builders. Dies erreichen wir durch die Verwendung des --name-Flags für den Builder und des --node-Flags für den Knoten.

docker buildx create --name custombuilder --node node1

Dieser Befehl erstellt eine neue Builder-Instanz namens custombuilder mit einem initialen Knoten namens node1.

Lassen Sie uns die Builder auflisten, um die Namen zu bestätigen.

docker buildx ls

Sie sollten nun custombuilder aufgelistet sehen, und darunter den Knoten mit dem Namen node1. Dies gibt Ihnen mehr Kontrolle über die Organisation und Identifizierung Ihrer Builder und Knoten.

Unterstützte Plattformen für einen Knoten festlegen

In diesem Schritt lernen wir, wie man die Plattformen definiert, die ein Build-Knoten unterstützt. Dies ist entscheidend für die Erstellung von Multi-Architektur-Images. Standardmäßig unterstützt ein Knoten nur die Architektur des Hostsystems, auf dem er läuft. Mit Buildx können Sie jedoch Knoten für zusätzliche Plattformen mittels Emulation (z.B. QEMU) konfigurieren.

Zuerst untersuchen wir den im vorherigen Schritt erstellten custombuilder, um die unterstützten Plattformen seines Knotens anzuzeigen.

docker buildx inspect custombuilder

Suchen Sie im Output nach dem Feld "Platforms". Es sollte die native Architektur Ihrer LabEx-VM anzeigen (z.B. linux/amd64).

Nun aktualisieren wir den Knoten node1 innerhalb von custombuilder, um zusätzliche Plattformen zu unterstützen. Dazu verwenden wir den Befehl docker buildx create mit den Flags --append und --platform. Wir fügen Unterstützung für linux/arm64 und linux/riscv64 hinzu.

docker buildx create --name custombuilder --append --node node1 --platform linux/arm64,linux/riscv64

Beachten Sie, dass wir --append mit dem bestehenden Builder-Namen und Knotennamen verwenden. Dieser Befehl aktualisiert den vorhandenen Knoten node1 innerhalb von custombuilder, um die angegebenen Plattformen einzubeziehen.

Lassen Sie uns den Builder erneut untersuchen, um die aktualisierten Plattformen für node1 zu sehen.

docker buildx inspect custombuilder

Das Feld "Platforms" für node1 sollte nun linux/amd64, linux/arm64 und linux/riscv64 enthalten. Dies bedeutet, dass dieser Knoten nun in der Lage ist, Images für diese Architekturen zu erstellen.

Automatisch zum neu erstellten Builder wechseln

In diesem letzten Schritt lernen wir, wie man automatisch zum neu erstellten Builder wechselt. Wenn Sie mehrere Builder haben, müssen Sie Docker Buildx mitteilen, welcher für Build-Operationen verwendet werden soll.

Standardmäßig verwendet Docker Buildx den default-Builder. Sie können sehen, welcher Builder aktuell aktiv ist, indem Sie die Ausgabe von docker buildx ls betrachten. Der aktive Builder wird durch ein Sternchen (*) neben seinem Namen gekennzeichnet.

docker buildx ls

Um zum erstellten custombuilder zu wechseln, können Sie den Befehl docker buildx use gefolgt vom Namen des Builders verwenden.

docker buildx use custombuilder

Dieser Befehl setzt custombuilder als aktuell aktiven Builder. Alle nachfolgenden docker buildx build-Befehle verwenden nun die innerhalb von custombuilder konfigurierten Knoten.

Lassen Sie uns überprüfen, ob custombuilder nun der aktive Builder ist, indem wir die Builder erneut auflisten.

docker buildx ls

Sie sollten nun ein Sternchen (*) neben custombuilder sehen, was anzeigt, dass dies der aktive Builder ist.

Sie haben erfolgreich eine neue Builder-Instanz erstellt, einen Knoten hinzugefügt, Namen für beide festgelegt, unterstützte Plattformen für den Knoten definiert und zu diesem neuen Builder gewechselt.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man Docker Builder mit dem Befehl docker buildx create verwaltet. Wir begannen mit der Erstellung einer neuen Builder-Instanz namens mybuilder, wobei wir demonstrierten, wie eine separate Build-Umgebung initialisiert wird. Anschließend untersuchten wir, wie man einem bestehenden Builder einen neuen Build-Knoten hinzufügt, wodurch wir effektiv einen zusätzlichen Build-Endpunkt zu unserer mybuilder-Instanz hinzufügten.

Darüber hinaus behandelten wir, wie man sowohl für den Builder als auch für seine Knoten benutzerdefinierte Namen festlegt, um die Organisation und Übersichtlichkeit zu verbessern. Wir lernten auch, wie man die spezifischen Plattformen (Architekturen) definiert, die ein bestimmter Build-Knoten unterstützt, was zielgerichtete Builds ermöglicht. Abschließend übten wir das automatische Wechseln zum neu erstellten Builder, wodurch dieser zum aktiven Builder für nachfolgende Build-Operationen wurde.