Einführung Kürzlich habe ich herausgefunden, dass es eine ARM-Version von Docker gibt. Auf hub.docker.com gibt es auch ARM-Versionsimages, aber das Erstellen der ARM-Version des Docker-Images ist ein Problem. Eingebettete Programme können auf einem PC plattformübergreifend kompiliert werden, aber ich weiß nicht, ob Docker eine plattformübergreifende Lösung hat. planen Uns fallen mehrere Möglichkeiten zum Erstellen von ARM-Images mit Docker ein. Die dritte ähnelt der Cross-Kompilierung.
Erstellen Sie mehrere Plattform-Images mit Docker Buildx Siehe die folgenden Links. Es werden zwei experimentelle Funktionen von Docker verwendet, und Sie müssen die experimentellen Funktionen aktivieren, wenn Sie sie verwenden. Docker-Manifest. Manifest ist eine Datei, die Bildinformationen enthält. Eine Manifestliste ist eine Bildliste, die zum Speichern von Bildinformationen verschiedener Betriebssysteme/Architekturen verwendet wird. Wir können eine Manifestliste erstellen, die auf die beiden Bilder verweist und dann mehrere Plattformen unterstützt. Docker Buildx, Buildx ist ein Plug-In für Docker und die nächste Generation der Docker-Image-Erstellung. Dieses Plug-in übersetzt die Befehlssätze verschiedener Plattformen über qemu-user-static, um Programme anderer Plattformen auf x64 auszuführen. buildx verwendet tatsächlich das Image moby/buildkit:buildx-stable-1 für plattformübergreifende Builds. Erstellen Sie eine plattformübergreifende Version der Docker-Registrierung Informationen zum Erstellen des Docker-Registrierungsimages finden Sie unter dem folgenden Link. Erstellen Sie einen DNS-Server, um den Buildx-Fehler zu beheben Das Buildx-Plugin verwendet nicht die lokale Hosts-Datei und muss DNS verwenden. Dies ist ein Fehler, https://github.com/docker/buildx/issues/218, und niemand in der Community kümmert sich darum. Verwenden des Nginx-Proxys zum Lösen von Namensproblemen Nginx-Proxy hinzugefügt, um sowohl HTTP als auch HTTPS zu unterstützen. Das Buildx-Plugin erzwang die Verwendung von HTTPS und es gab keine Möglichkeit, es abzuschalten. Nginx fügt zwei Konfigurationen hinzu, um mehrere Probleme beim Pushen durch den Client zu lösen. # nignx.conf-Konfiguration proxy_ignore_client_abort on; # Client-Warnung ignorieren client_max_body_size 0; # Unbegrenzte Upload-Dateigröße # Konfiguration des virtuellen Hosts Server { hören Sie 443; Servername buildx.com; SSL aktiviert; SSL-Zertifikat crt/server.crt; SSL-Zertifikatsschlüssel crt/server.key; SSL-Sitzungszeitüberschreitung 5 Min. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #Konfigurieren Sie gemäß diesem Protokoll ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #Konfigurieren Sie gemäß dieser Suite ssl_prefer_server_ciphers on; Standort / { Proxy-Passwort http://192.168.1.11:81; } } Server { hören Sie 80; Servername buildx.com; Standort / { Proxy-Passwort http://192.168.1.11:81; } } Einrichten einer lokalen Docker-Umgebung Der lokale Docker muss experimentelle Funktionen aktivieren.
# Ziehen Sie das Image der arm64-Version und führen Sie docker pull --platform arm64 alpine:3.10 aus docker run --rm -it alpine:3.10 sh Erstellen Sie ein Basis-Image Sie können Versionen mehrerer Plattformen von hub.docker.com abrufen, eine Manifestliste generieren und sie in das Register hochladen. # Arm64-Version abrufen, umbenennen und hochladen. Sie können auf hub.docker.com überprüfen, ob das jeweilige Image mehrere Plattformen unterstützt. Docker Pull --Plattform arm64 centos:7 Docker-Tag Centos:7 buildx.com/base/centos-arm64:7 Docker-Push buildx.com/base/centos-arm64:7 # amd64-Version ziehen, umbenennen, hochladen docker pull --platform amd64 centos:7 Docker-Tag Centos:7 buildx.com/base/centos-amd64:7 Docker-Push buildx.com/base/centos-amd64:7 # Erstellen Sie eine Manifestliste und laden Sie sie hoch. Docker-Manifest erstellen --insecure buildx.com/base/centos:7 buildx.com/base/centos-amd64:7 buildx.com/base/centos-arm64:7 Docker-Manifest-Push – unsicher buildx.com/base/centos:7 Bauen Sie ein Geschäftsimage auf # buildx kann mehrere Plattformen angeben, erfordert aber, dass das FROM-Image in der Docker-Datei eine entsprechende Version haben muss. # Das von buildx gepackte Image wird nicht lokal gespeichert. Fügen Sie --push hinzu, um das Docker-Repository hochzuladen. Alternativ können Sie --output verwenden, um die Ausgabemethode anzugeben. docker buildx build --platform linux/amd64,linux/arm64 -t buildx.com/base/java-base:openjdk-8-centos7 . --push Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Optimierungsanalyse der Limit-Abfrage in MySQL-Optimierungstechniken
>>: Zusammenfassung von 4 Lösungen zum Zurückgeben von Werten auf WeChat Mini-Programmseiten
Zabbix Server-Umgebungsplattform Version: ZABBIX ...
Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...
<br />Jede Familie hat ihre eigenen Probleme...
1. Einrichten des virtuellen Nginx-Hosts Mit virt...
Klassifizierung der Farbeigenschaften Jede Farbe ...
Nginx-Optimierung --- Versionsnummer und Cache-Ze...
Ich habe vorher ein Testprogramm geschrieben, in d...
Wenn Sie zusätzlichen Text in HTML als Auslassung...
Inhaltsverzeichnis Vorwort Vorteile der Axios-Kap...
Einführung in jsvc In der Produktion sollte Tomca...
1. Hintergrund Im Allgemeinen verwenden wir für D...
1. CSS-Navigationsleiste (1) Funktion der Navigat...
Inhaltsverzeichnis 1. Einleitung 1.1 Grundsatz 1....
1. Ziehen Sie das offizielle 5.0.3-Image [root@lo...
Verständnis von Umfragen Tatsächlich liegt der Sc...