Inhaltsverzeichnis
Methode eins
Führen Sie die folgenden Schritte aus, um ein Docker-Image zu erstellen, das auf mehreren Plattformen ausgeführt wird, und es in ein Remote-Image-Repository zu übertragen:
-
Schreiben Sie eine Docker-Datei, um die Build-Regeln und erforderlichen Abhängigkeiten des Images zu definieren.
-
Verwenden Sie den Docker-Befehl buildx, um eine Builder-Instanz zu erstellen, die Images für mehrere Plattformen erstellen kann:
docker buildx create --name mybuilder docker buildx use mybuilder
-
Legen Sie mehrere Plattformen fest, die von einer Builder-Instanz unterstützt werden:
docker buildx inspect --bootstrap docker buildx inspect --platforms linux/amd64,linux/arm64,linux/arm/v7
-
Verwenden Sie den Docker-Befehl buildx, um das Image zu erstellen und es in das Remote-Image-Repository zu übertragen:
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t myrepo/myimage:latest --push .
Unter diesen --platform
gibt der Parameter die zu erstellende Plattformliste an, und -t
der Parameter gibt den Namen und die Bezeichnung des Bildes an, .
was darauf hinweist, dass das aktuelle Verzeichnis das Verzeichnis ist, in dem sich die Docker-Datei befindet.
tip:
Die oben genannten Schritte können über die Befehlszeile ausgeführt oder als Skript zur wiederholten Verwendung geschrieben werden.
Methode 2
In älteren Versionen von Docker können Sie mithilfe der folgenden Schritte eine Builder-Instanz zur Unterstützung mehrerer Plattformen einrichten:
-
Erstellen Sie eine Builder-Instanz:
docker buildx create --name mybuilder docker buildx use mybuilder
-
Fügen Sie der Builder-Instanz unterstützte Plattformen hinzu:
docker buildx inspect --bootstrap docker buildx append --platform linux/amd64,linux/arm64,linux/arm/v7 mybuilder
-
Anschließend können Sie mit
docker buildx build
dem Befehl ein Multiplattform-Image erstellen und es in das Remote-Repository übertragen.docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t myrepo/myimage:latest --push .
Bitte beachten Sie, dass es zu anderen Problemen kommen kann, wenn Ihre Docker-Version zu alt ist. Es wird daher empfohlen, ein Upgrade auf die neueste Docker-Version durchzuführen.