EN: Read in English
Dunia D2: Resepi
amd64 atau arm64? buildx
Anda akan belajar: kenapa pek boleh gagal pada CPU lain, dan cara buildx bakar untuk dua sekali gus.
Teks BM belum disemak oleh penutur asli.
Disemak dengan Docker Engine 29 pada 31 Okt 2026
Masalahnya
Aina bakar pek itu di Mac yang guna cip Apple. Server pula guna cip Intel. Ia terus berhenti. Ralat sebenar: exec format error. Maksudnya: dimasak untuk jenis CPU lain.
Cuba
Setiap image dibina untuk satu platform: Jenis OS dan CPU yang image dibina untuknya, contohnya linux/amd64 atau linux/arm64.: satu OS dan satu jenis CPU. CPU mana yang ada pada setiap mesin?
Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.
Tengok
buildx bakar untuk dua platform sekali gus. Setiap langkah jalan dua kali, sekali untuk setiap CPU. Kedua-dua pek kongsi satu nama.
Cuba
Bina arahan yang bakar hello:1.0 untuk kedua-dua keluarga CPU.
Ketik kepingan ikut turutan yang betul.
Teka
hello:1.0 kini ada dua pek di dalamnya. Sebuah Raspberry Pi pull image itu. Apa yang ia dapat?
Pilih satu jawapan.
Semak
docker images --tree tunjuk satu nama dengan dua pek di dalam. Senarai itu dipanggil image index.
Cuba
Laptop latihan anda amd64. Bina untuknya dengan sengaja sebagai hello:amd64, kemudian jalankan.
Laptop anda~/hello
- Tiada tingkap terbuka
Bekas (container)
- Belum ada container
Pek beku (image)
- alpine:3.221 layer · 12.9MB
0 container (0 berjalan), 1 image, 0 loker.
Anda berjaya!
Kini anda boleh bina image untuk amd64 dan arm64.
Nak tahu lebih (pilihan)
Untuk jalankan langkah bagi CPU lain, Docker boleh guna emulator bernama QEMU. Ia perlahan, jadi pasukan besar selalu bina setiap platform di mesinnya sendiri.
Di mana cerita ini tak tepat: tukang masak dapat kek sama dari resepi sama. Dockerfile mungkin tidak. RUN apk add curl boleh ambil curl yang lebih baharu bulan depan. Tetapkan versi untuk kekalkan rasa.
Misi sebenar
docker version --format "{{.Server.Arch}}"docker buildx build --platform linux/amd64,linux/arm64 -t hello:1.0 .docker images --tree hello
0 daripada 3 langkah siap · Tanda anda disimpan.
English
Aina baked the pack on her Mac with an Apple chip. The server has an Intel chip. It stops at once. Real error: exec format error. Plain words: cooked for another kind of CPU.
Every image is built for one platform: an OS plus a CPU type. Which CPU does each machine have?
buildx bakes for two platforms in one go. Each step runs twice, once per CPU. Both packs share one name.
Build the command that bakes hello:1.0 for both CPU families.
hello:1.0 now has two packs inside. A Raspberry Pi pulls it. What does it get?
docker images --tree shows one name with two packs inside. That list is called an image index.
Your practice laptop is amd64. Build for it on purpose as hello:amd64, then run it.
You can now build images for amd64 and arm64.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: Docker docs: Multi-platform builds · docker buildx build · docker image ls (--tree)
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?