τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Το buildx είναι ένα εργαλείο κατασκευής που παρέχεται επίσημα από το Docker. Μπορεί να βοηθήσει τους χρήστες να δημιουργήσουν εικόνες Docker γρήγορα και αποτελεσματικά και υποστηρίζει την κατασκευή πολλαπλών πλατφορμών. Χρησιμοποιώντας το buildx, οι χρήστες μπορούν να δημιουργήσουν εικόνες για πολλαπλές αρχιτεκτονικές, όπως αρχιτεκτονικές x86 και βραχίονες, σε μία μόνο εντολή χωρίς να χρειάζεται να χειρίζονται με μη αυτόματο τρόπο πολλαπλές εντολές κατασκευής. Επιπλέον, το buildx υποστηρίζει επίσης την κατασκευή πολλαπλών σταδίων και την προσωρινή αποθήκευση του Dockerfile, κάτι που μπορεί να βελτιώσει σημαντικά την αποτελεσματικότητα και την ταχύτητα της κατασκευής εικόνας.
Το buildx είναι ένα πρόσθετο CLI που διαχειρίζεται τις εκδόσεις Docker Το υποκείμενο επίπεδο χρησιμοποιεί το BuildKit για να επεκτείνει τις δυνατότητες κατασκευής του Docker.
Το BuildKit είναι μια μηχανή κατασκευής υψηλής απόδοσης που παρέχεται επίσημα από την Docker, η οποία μπορεί να χρησιμοποιηθεί για να αντικαταστήσει την αρχική μηχανή κατασκευής του Docker. Σε σύγκριση με τον αρχικό κινητήρα, το BuildKit έχει μεγαλύτερη ταχύτητα κατασκευής, υψηλότερο παραλληλισμό, λιγότερη χρήση πόρων και καλύτερη ασφάλεια.
Για να εγκαταστήσετε και να χρησιμοποιήσετε το buildx, ο αριθμός έκδοσης του Docker Engine είναι μεγαλύτερος ή ίσος με 19.03.
Το πρόγραμμα δημιουργίας υποστηρίζει διαφορετικές στρατηγικές για τη δημιουργία εικόνων μεταξύ πλατφορμών.
Εάν χρησιμοποιείτε Docker Desktop, το QEMU υποστηρίζεται ήδη και είναι η απλούστερη στρατηγική για τη δημιουργία εικόνων μεταξύ πλατφορμών. Δεν απαιτεί αλλαγές στο αρχικό Dockerfile Το BuildKit θα υλοποιήσει την εκτέλεση προγράμματος μεταξύ πλατφορμών μέσω της συνάρτησης πυρήνα Linux binfmt_misc.
αρχή λειτουργίας:
Το QEMU είναι ένας προσομοιωτής επεξεργαστή που μπορεί να προσομοιώσει διαφορετικές αρχιτεκτονικές CPU Μπορούμε να το κατανοήσουμε ως μια άλλη μορφή εικονικής μηχανής. Στο buildx, το QEMU χρησιμοποιείται για την εκτέλεση δυαδικών αρχείων για μη εγγενείς αρχιτεκτονικές κατά τη διάρκεια της διαδικασίας κατασκευής. Για παράδειγμα, όταν δημιουργείτε μια εικόνα ARM σε έναν κεντρικό υπολογιστή x86, το QEMU μπορεί να προσομοιώσει το περιβάλλον ARM και να εκτελέσει δυαδικά αρχεία ARM.
Το binfmt_misc είναι μια λειτουργική μονάδα του πυρήνα Linux που επιτρέπει στους χρήστες να καταχωρούν εκτελέσιμες μορφές αρχείων και αντίστοιχους διερμηνείς.Όταν ο πυρήνας συναντά ένα εκτελέσιμο αρχείο άγνωστης μορφής, το binfmt_misc χρησιμοποιείται για να βρει τον διερμηνέα που σχετίζεται με τη μορφή αρχείου (QEMU σε αυτήν την περίπτωση) και να εκτελέσει το αρχείο . Αυτή η λειτουργία είναι απενεργοποιημένη στην πλατφόρμα rk3568.
Ο συνδυασμός QEMU και binfmt_misc καθιστά δυνατή τη δημιουργία πολλαπλών πλατφορμών μέσω του buildx. Αυτό μας επιτρέπει να δημιουργήσουμε εικόνες Docker για μια αρχιτεκτονική σε έναν κεντρικό υπολογιστή για άλλες αρχιτεκτονικές χωρίς να χρειάζεται να κατέχουμε το πραγματικό υλικό-στόχο.
Αν και το Docker Desktop έχει προρυθμιστεί με υποστήριξη binfmt_misc για άλλες πλατφόρμες, για άλλες εκδόσεις του Docker, ίσως χρειαστεί να χρησιμοποιήσετε την εικόνα tonistiigi/binfmt για να ξεκινήσετε ένα προνομιακό κοντέινερ για υποστήριξη.
docker run --privileged --rm tonistiigi/binfmt --install all
Η εκτέλεση αυτής της εντολής θα εγκαταστήσει προγράμματα διερμηνέων διαφορετικών αρχιτεκτονικών, δηλαδή τον προσομοιωτή qemu στον κατάλογο /usr/bin:
Η λειτουργική μονάδα binfmt_misc φορτώνεται στον διακομιστή μεταγλώττισης:
Το Docker Buildx είναι μια πειραματική δυνατότητα του Docker που επεκτείνει τις δυνατότητες κατασκευής του Docker, συμπεριλαμβανομένης της χρήσης πολλαπλών κόμβων, qemu κ.λπ. Το QEMU είναι ένα λογισμικό εικονικής μηχανής ανοιχτού κώδικα που μπορεί να προσομοιώσει διαφορετικές CPU και άλλο υλικό, επιτρέποντάς μας να δημιουργήσουμε μια εικόνα ενός άλλου λειτουργικού συστήματος σε ένα λειτουργικό σύστημα.
Η χρήση της συνάρτησης qemu του Docker Buildx μπορεί να μας βοηθήσει να δημιουργήσουμε εικόνες Docker για πολλές διαφορετικές αρχιτεκτονικές (όπως ARM, MIPS, κ.λπ.).
Το παρακάτω είναι ένα απλό παράδειγμα που δείχνει πώς να χρησιμοποιήσετε το Docker Buildx και το QEMU για τη δημιουργία μιας εικόνας Docker για αρχιτεκτονική ARM:
- # 创建一个新的 buildkit 实例
- docker buildx create --name mybuilder --use
-
- # 启动 buildkit 实例
- docker buildx start mybuilder
-
- # 启用 QEMU 驱动支持
- docker buildx inspect --bootstrap
-
- # 构建一个面向 ARM 架构的 Docker 镜像
- docker buildx build --platform linux/arm/v7 -t myimage:latest .
Σε αυτό το παράδειγμα,--platform
Η παράμετρος καθορίζει ότι η πλατφόρμα στόχος για την οποία θέλουμε να δημιουργήσουμε είναι η ARM v7. Με αυτόν τον τρόπο, ο Docker θα χρησιμοποιήσει το QEMU για να προσομοιώσει ένα περιβάλλον ARM και να δημιουργήσει μια εικόνα Docker για την αρχιτεκτονική ARM στο μηχάνημα αρχιτεκτονικής x86.
Το binfmt-misc είναι μια λειτουργία που παρέχεται από τον πυρήνα Linux παρόμοια με τη συσχέτιση αρχείων στα Windows, αλλά πιο ισχυρή από τη συσχέτιση αρχείων είναι ότι όχι μόνο μπορεί να κρίνει με βάση το όνομα του επιθήματος αρχείου, αλλά μπορεί επίσης να ανοίξει χρησιμοποιώντας διαφορετικά προγράμματα που βασίζονται στο αρχείο περιεχόμενο (Magic Bytes) . Ένα τυπικό σενάριο χρήσης είναι η χρήση qemu για την εκτέλεση δυαδικών αρχείων σε άλλες πλατφόρμες αρχιτεκτονικής.
Ενεργοποίηση binfmt-misc
Για να το ενεργοποιήσετε προσωρινά, χρησιμοποιήστε την ακόλουθη εντολή:
$ sudo mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
Αυτή η μέθοδος θα καταστεί άκυρη μετά την επανεκκίνηση Εάν θέλετε να τεθεί σε ισχύ για μεγάλο χρονικό διάστημα, μπορείτε να προσθέσετε μια γραμμή στο αρχείο /etc/fstab.
none /proc/sys/fs/binfmt_misc binfmt_misc defaults 0 0
Μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να ελέγξετε εάν το άνοιγμα είναι επιτυχές:
- $ mount | grep binfmt_misc
- binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
- $ ls -l /proc/sys/fs/binfmt_misc
- 总用量 0
- --w------- 1 root root 0 2月 5 22:55 register
- -rw-r--r-- 1 root root 0 2月 5 22:55 status
Πρώτα ετοιμάστε ένα πρόγραμμα με αρχιτεκτονική arm64 Μετά την εκτέλεσή του, αναφέρεται ένα σφάλμα:
bash: ./go-test:无法执行二进制文件: 可执行文件格式错误
Τώρα, ας εκτελέσουμε την εντολή apt install qemu-user-binfmt και, στη συνέχεια, εκτελέστε το παραπάνω πρόγραμμα arm64 και διαπιστώστε ότι μπορεί να εκτελεστεί κανονικά. Μετά την εγκατάσταση του qemu-user-binfmt, θα δημιουργηθούν πολλά αρχεία στον κατάλογο /proc/sys/fs/binfmt_misc, συμπεριλαμβανομένου ενός qemu-aarch64.
- root@ubuntu:/proc/sys/fs/binfmt_misc# cat qemu-aarch64
- enabled
- interpreter /usr/bin/qemu-aarch64-static
- flags: OC
- offset 0
- magic 7f454c460201010000000000000000000200b700
- mask ffffffffffffff00fffffffffffffffffeffffff
- root@ubuntu:/proc/sys/fs/binfmt_misc#
Αυτό το αρχείο περιγράφει το αρχείο κανόνων:
Η πρώτη γραμμή που ενεργοποιήθηκε υποδεικνύει ότι ο κανόνας είναι ενεργοποιημένος.
Ο διερμηνέας δεύτερης γραμμής /usr/bin/qemu-aarch64-static υποδεικνύει τη χρήση του /usr/bin/qemu-aarch64-static για την εκτέλεση του δυαδικού αρχείου.
Η τρίτη γραμμή: OC αντιπροσωπεύει τη σημαία που τρέχει, η συγκεκριμένη έννοια είναι η εξής:
P: σημαίνει διατήρηση-argv, που σημαίνει ότι κατά την κλήση του προσομοιωτή, οι αρχικές παράμετροι (argv) θα διατηρηθούν.Αυτό είναι χρήσιμο για περιπτώσεις όπου τα αθόρυβα προγράμματα πρέπει να γνωρίζουν το όνομά τους (δηλαδή argv[0]) κατά το χρόνο εκτέλεσης
O: αντιπροσωπεύει τη μετατόπιση, που σημαίνει ότι πριν από την έναρξη του προσομοιωτή, πρέπει να διαβαστεί μια μετατόπιση από το δυαδικό αρχείο και αυτή η μετατόπιση θα χρησιμοποιηθεί ως παράμετρος του προσομοιωτή.
C: σημαίνει διαπιστευτήρια, που σημαίνει ότι ο εξομοιωτής θα εκτελείται με το ίδιο αναγνωριστικό χρήστη και το ίδιο αναγνωριστικό ομάδας που χρησιμοποιούνται από το αρχικό πρόγραμμα, γεγονός που βοηθά να διασφαλιστεί ότι ο εξομοιωτής εκτελείται με τα ίδια δικαιώματα με το αρχικό πρόγραμμα.
Η τέταρτη γραμμή: μετατόπιση 0 σημαίνει έναρξη ανάγνωσης του αρχείου από την τιμή 0.
Η πέμπτη γραμμή: magic 7f454c46020101000000000000000000200b700 αντιπροσωπεύει το modulo byte που πρέπει να αντιστοιχιστεί.
Το μαγικό πεδίο στην κεφαλίδα του αρχείου ELF της αρχιτεκτονικής arm64 είναι το εξής, πράγμα που σημαίνει ότι το σύστημα αρχείων binfmt_misc μπορεί να προσδιορίσει ποιον προσομοιωτή αρχιτεκτονικής θα χρησιμοποιήσει για την εκτέλεση του αρχείου με βάση το μαγικό πεδίο στο αρχείο ELF:
Παρακάτω υπάρχουν δύο διαφορετικές αρχιτεκτονικές
Αρχιτεκτονική Mips: 7f454c4601020100000000000000000000020008
αρχιτεκτονική arm64: 7f454c460201010000000000000000000200b700
Γραμμή 6: μάσκα ffffffffffffff00ffffffffffffffffffffffff αντιπροσωπεύει τη μάσκα byte, η οποία μπορεί να χρησιμοποιηθεί για να αγνοήσει ορισμένα ασήμαντα byte στο αρχείο.
Τώρα χρησιμοποιούμελιμενεργάτηςΗ εντολή εκτελεί μια εικόνα arm64:
- $ docker run -it arm64v8/ubuntu bash
- Unable to find image 'arm64v8/ubuntu:latest' locally
- latest: Pulling from arm64v8/ubuntu
- 005e2837585d: Pull complete
- Digest: sha256:ba545858745d6307f0d1064d0d25365466f78d02f866cf4efb9e1326a4c196ca
- Status: Downloaded newer image for arm64v8/ubuntu:latest
- standard_init_linux.go:207: exec user process caused "no such file or directory"
Μετά από κάποια εξερεύνηση, βρήκα ότι αρκεί να εκτελέσω την ακόλουθη εντολή:apt install qemu-user-static
, μετά ξεκινήστε το dockerδοχείοΕίναι φυσιολογικό.
Η πολυπλοκότητα της πολλαπλής μεταγλώττισης δεν έγκειται στο Docker, αλλά στο ίδιο το πρόγραμμα. Για παράδειγμα, τα προγράμματα Go μπορούν εύκολα να διασταυρωθούν Χρειάζεται μόνο να εκτελέσετε τις δύο μεταβλητές περιβάλλοντος GOOS και GOARCH κατά τη δημιουργία του προγράμματος χρησιμοποιώντας το go build.
Για να χρησιμοποιήσουμε το buildx για να δημιουργήσουμε μια εικόνα πολλαπλών πλατφορμών, πρέπει πρώτα να δημιουργήσουμε ένα πρόγραμμα δημιουργίας, το οποίο μπορεί να μεταφραστεί ως οικοδόμος.
Χρησιμοποιήστε την εντολή docker buildx ls για να προβάλετε τη λίστα δημιουργών:
- root@ubuntu:/proc# docker buildx ls
- NAME/NODE DRIVER/ENDPOINT STATUS PLATFORMS
- mybuild * docker-container
- mybuild0 unix:///var/run/docker.sock running linux/arm64*, linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/amd64/v4, linux/386
- vigilant_hugle docker-container
- vigilant_hugle0 unix:///var/run/docker.sock stopped
- default docker
- default default running linux/amd64, linux/386
Το σύμβολο * υποδεικνύει το πρόγραμμα δημιουργίας που χρησιμοποιείται αυτήν τη στιγμή Όταν εκτελούμε την εντολή build docker, χρησιμοποιούμε αυτό το πρόγραμμα δημιουργίας για τη δημιουργία της εικόνας. DRIVER/ENDPOINT στη δεύτερη στήλη υποδεικνύει το πρόγραμμα οδήγησης που χρησιμοποιείται. Το buildx υποστηρίζει τα ακόλουθα προγράμματα οδήγησης:
Επειδή το προεπιλεγμένο πρόγραμμα δημιουργίας που χρησιμοποιεί το πρόγραμμα οδήγησης docker δεν υποστηρίζει τη δημιουργία εικόνων πολλαπλών πλατφορμών με χρήση μίας μόνο εντολής (η παράμετρος --platform του προεπιλεγμένου builder δέχεται μόνο μία τιμή), πρέπει να δημιουργήσουμε ένα νέο εργαλείο δημιουργίας χρησιμοποιώντας το πρόγραμμα οδήγησης docker-container .
Η σύνταξη της εντολής είναι η εξής:
$ docker buildx create --name=<builder-name> --driver=<driver> --driver-opt=<driver-options>
Η σημασία των παραμέτρων είναι η εξής.
--όνομα: Όνομα προς κατασκευή, υποχρεωτικό.
--driver: Πρόγραμμα οδήγησης Builder, η προεπιλογή είναι docker-container.
--driver-opt: επιλογές προγράμματος οδήγησης Για παράδειγμα, η επιλογή --driver-opt=moby/buildkit:v0.11.3 μπορεί να εγκαταστήσει την καθορισμένη έκδοση του BuildKit.
Μπορούμε να δημιουργήσουμε ένα νέο builder χρησιμοποιώντας την ακόλουθη εντολή:
- $ docker buildx create --name mybuilder
- mybuilder
Ελέγξτε ξανά τη λίστα δημιουργών:
- $ docker buildx ls
- NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS
- mybuilder * docker-container
- mybuilder0 unix:///var/run/docker.sock inactive
- default docker
- default default running 20.10.21 linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6
- desktop-linux docker
- desktop-linux desktop-linux running 20.10.21 linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6
Μπορείτε να διαπιστώσετε ότι το επιλεγμένο build έχει αλλάξει στο Mybuilder Εάν δεν είναι επιλεγμένο, πρέπει να χρησιμοποιήσετε μη αυτόματα την εντολή docker buildx use mybuilder για εναλλαγή του builder.
Το mybuilder που δημιουργήθηκε πρόσφατα είναι ανενεργό και πρέπει να ξεκινήσει για να μπορέσει να χρησιμοποιηθεί.
- $ docker buildx inspect --bootstrap mybuilder
- [+] Building 16.8s (1/1) FINISHED
- => [internal] booting buildkit 16.8s
- => => pulling image moby/buildkit:buildx-stable-1 16.1s
- => => creating container buildx_buildkit_mybuilder0 0.7s
- Name: mybuilder
- Driver: docker-container
-
- Nodes:
- Name: mybuilder0
- Endpoint: unix:///var/run/docker.sock
- Status: running
- Buildkit: v0.9.3
- Platforms: linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
Η υποεντολή επιθεώρησης χρησιμοποιείται για τον έλεγχο της κατάστασης κατασκευής Χρησιμοποιήστε την παράμετρο --bootstrap για να ξεκινήσετε ξανά τη λίστα δημιουργίας.
- $ docker buildx ls
- NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS
- mybuilder * docker-container
- mybuilder0 unix:///var/run/docker.sock running v0.9.3 linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
- default docker
- default default running 20.10.21 linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6
- desktop-linux docker
- desktop-linux desktop-linux running 20.10.21 linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6
Η τιμή που εμφανίζεται στη στήλη ΠΛΑΤΦΟΡΜΕΣ
Υποστηρίζονται όλα τα linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6 από την τρέχουσα έκδοση πλατφόρμες.
Τώρα χρησιμοποιήστε την εντολή docker ps για να δείτε ότι το κοντέινερ BuildKit που αντιστοιχεί στο πρόγραμμα δημιουργίας mybuilder έχει ξεκινήσει.
- $ docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- b8887f253d41 moby/buildkit:buildx-stable-1 "buildkitd" 4 minutes ago Up 4 minutes buildx_buildkit_mybuilder0
Αυτό το κοντέινερ χρησιμοποιείται για να μας βοηθήσει στη δημιουργία εικόνων πολλαπλών πλατφορμών.
$ docker buildx build --platform linux/arm64,linux/amd64 -t jianghushinian/hello-go .
Η σύνταξη του docker buildx είναι η ίδια με αυτή του docker build Η παράμετρος --platform υποδεικνύει την πλατφόρμα-στόχο για τη δημιουργία της εικόνας, το -t δείχνει την ετικέτα της εικόνας δηλώνει ότι το περιβάλλον είναι ο τρέχων κατάλογος。
Το μόνο πράγμα που δεν λειτουργεί είναι η υποστήριξη για την παράμετρο --platform Η παράμετρος --platform του docker build υποστηρίζει μόνο τη μετάδοση μιας πληροφορίας πλατφόρμας, όπως --platform linux/arm64, που σημαίνει ότι μια μεμονωμένη εικόνα πλατφόρμας μπορεί. να κατασκευαστεί κάθε φορά.
Η χρήση της έκδοσης docker buildx για τη δημιουργία μιας εικόνας υποστηρίζει τη μετάδοση πληροφοριών πολλαπλών πλατφορμών ταυτόχρονα, διαχωρισμένες με αγγλικά κόμματα, πραγματοποιώντας έτσι τη λειτουργία δημιουργίας πολλαπλών εικόνων πολλαπλών πλατφορμών με μία μόνο εντολή.
Αφού εκτελέσουμε την παραπάνω εντολή, θα λάβουμε μια προειδοποίηση:
WARNING: No output specified with docker-container driver. Build result will only remain in the build cache. To push result image into registry use --push or to load image into docker use --load
Αυτή η προειδοποίηση μας υπενθυμίζει ότι δεν έχουμε καθορίσει έξοδο για το πρόγραμμα οδήγησης docker-container. Τα αποτελέσματα που δημιουργούνται θα διατηρηθούν μόνο στην κρυφή μνήμη κατασκευής για να αποθηκεύσετε την εικόνα τοπικά.
Αυτό συμβαίνει επειδή το νεοδημιουργημένο mybuilder ξεκινά ένα κοντέινερ για να εκτελέσει το BuildKit.
Μπορούμε να δοκιμάσουμε να καθορίσουμε --load για να αποθηκεύσουμε την εικόνα στον τοπικό κεντρικό υπολογιστή.
- $ docker buildx build --platform linux/arm64,linux/amd64 -t jianghushinian/hello-go . --load
- [+] Building 0.0s (0/0)
- ERROR: docker exporter does not currently support exporting manifest lists
Το αποτέλεσμα θα είναι ένα αρχείο καταγραφής σφαλμάτων. Φαίνεται ότι δεν υποστηρίζει την εξαγωγή εικόνων μεταξύ πλατφορμών στην τοπική πλατφόρμα μηχανή.
Τότε μπορούμε μόνο να προωθήσουμε την εικόνα πολλαπλών πλατφορμών στην απομακρυσμένη αποθήκη μέσω της παραμέτρου --push. Ωστόσο, προτού το κάνετε αυτό, πρέπει να βεβαιωθείτε ότι χρησιμοποιείτε τη σύνδεση με docker για να ολοκληρώσετε τη σύνδεση.
$ docker buildx build --platform linux/arm64,linux/amd64 -t jianghushinian/hello-go . --push
Τώρα συνδεθείτε στο Docker Hub και μπορείτε να δείτε την ωθημένη εικόνα μεταξύ πλατφορμών.
Μπορούμε επίσης να χρησιμοποιήσουμε σκαμπό εικόνας για να ελέγξουμε τις πληροφορίες δήλωσης της εικόνας μεταξύ πλατφορμών Αυτή η εντολή μπορεί να χρησιμοποιηθεί μόνο για τη λήψη πληροφοριών εικόνας στην αποθήκη και δεν είναι δυνατή η προβολή των τοπικών εικόνων.
- $ docker buildx imagetools inspect jianghushinian/hello-go
- Name: docker.io/jianghushinian/hello-go:latest
- MediaType: application/vnd.docker.distribution.manifest.list.v2+json
- Digest: sha256:51199dadfc55b23d6ab5cfd2d67e38edd513a707273b1b8b554985ff562104db
-
- Manifests:
- Name: docker.io/jianghushinian/hello-go:latest@sha256:8032a6f23f3bd3050852e77b6e4a4d0a705dfd710fb63bc4c3dc9d5e01c8e9a6
- MediaType: application/vnd.docker.distribution.manifest.v2+json
- Platform: linux/arm64
-
- Name: docker.io/jianghushinian/hello-go:latest@sha256:fd46fd7e93c7deef5ad8496c2cf08c266bac42ac77f1e444e83d4f79d58441ba
- MediaType: application/vnd.docker.distribution.manifest.v2+json
- Platform: linux/amd64
Όπως μπορείτε να δείτε, αυτή η εικόνα πολλαπλών πλατφορμών περιέχει εικόνες δύο πλατφορμών στόχων, δηλαδή των linux/arm64 και linux/amd64.