全部产品
Search
文档中心

Container Registry:Bangun dan dorong image multi-arsitektur pada perangkat lokal ke instance Container Registry Enterprise Edition

更新时间:Jul 02, 2025

Men-deploy container dalam arsitektur Arm dapat menghemat biaya penyebaran. Namun, Anda mungkin perlu membangun image berbeda dan menetapkan tag berbeda untuk arsitektur x86 dan Arm, yang meningkatkan biaya pemeliharaan. Untuk mengatasi hal ini, gunakan perintah docker buildx untuk membangun image multi-arsitektur dan perintah docker manifest untuk mengelola image multi-arsitektur menggunakan satu tag.

Prasyarat

Bangun image multi-arsitektur dari Dockerfile

  1. Dalam contoh ini, digunakan proyek Java Maven. Buat Dockerfile dalam proyek Java Maven dan tambahkan konten berikut ke dalamnya:

    #Tahap pertama: lingkungan build lengkap
    FROM maven:3.5.0-jdk-8-alpine AS builder
    
    # tambahkan pom.xml dan kode sumber
    ADD ./pom.xml pom.xml
    ADD ./src src/
    
    # kemas jar
    RUN mvn clean package
    
    # Tahap kedua: lingkungan runtime minimal
    From openjdk:8-jre-alpine
    
    # salin jar dari tahap pertama
    COPY --from=builder target/my-app-1.0-SNAPSHOT.jar my-app-1.0-SNAPSHOT.jar
    
    EXPOSE 8080
    
    CMD ["java", "-jar", "my-app-1.0-SNAPSHOT.jar"]
  2. Buka terminal lokal di direktori tempat proyek Java Maven berada dan jalankan perintah berikut:

    1. Nonaktifkan opsi Provenance attestations dari docker buildx dengan menjalankan perintah berikut:

      export BUILDX_NO_DEFAULT_ATTESTATIONS=1
    2. Jalankan perintah berikut untuk membangun image multi-arsitektur:

      docker buildx build . -t acr-test-registry.cn-hangzhou.cr.aliyuncs.com/test/test:multi  --platform linux/amd64,linux/arm64 --push

      Setelah menjalankan perintah tersebut, image container untuk arsitektur Amd64 dan Arm64 akan dibangun di perangkat lokal dan didorong ke repositori image.

    Catatan

    Sebelum menjalankan perintah docker push untuk mendorong image ke repositori, pastikan Anda telah masuk ke repositori menggunakan perintah docker login. Contoh perintah docker login: docker login --username=xxx acr-test-registry.cn-hangzhou.cr.aliyuncs.com.

Buat image multi-arsitektur dari image yang ada

Dalam contoh ini, diasumsikan Anda memiliki dua image single-arsitektur dan ingin membuat image multi-arsitektur berdasarkan image tersebut.

  1. Jalankan perintah docker tag untuk menandai ulang image uni-arsitektur, lalu dorong image tersebut ke instance Container Registry Enterprise Edition. Sebagai contoh, jika image uni-arsitektur Anda adalah image NGINX Arm64 dan image NGINX AMD64, jalankan perintah berikut:

    docker tag nginx:arm64 acr-test-registry.cn-hangzhou.cr.aliyuncs.com/multi-arch/nginx:arm64
    docker push acr-test-registry.cn-hangzhou.cr.aliyuncs.com/multi-arch/nginx:arm64
    
    docker tag nginx:amd64 acr-test-registry.cn-hangzhou.cr.aliyuncs.com/multi-arch/nginx:amd64
    docker push acr-test-registry.cn-hangzhou.cr.aliyuncs.com/multi-arch/nginx:amd64
  2. Jalankan perintah docker manifest create untuk membuat daftar manifest dan menggabungkan image dari langkah 1 menjadi image multi-arsitektur.

    docker manifest create acr-test-registry.cn-hangzhou.cr.aliyuncs.com/multi-arch/nginx:multi \
     acr-test-registry.cn-hangzhou.cr.aliyuncs.com/multi-arch/nginx:arm64 \
     acr-test-registry.cn-hangzhou.cr.aliyuncs.com/multi-arch/nginx:amd64
  3. Jalankan perintah docker manifest push untuk mendorong daftar manifest ke instance Container Registry Enterprise Edition.

    docker manifest push acr-test-registry.cn-hangzhou.cr.aliyuncs.com/multi-arch/nginx:multi

Referensi

Anda juga dapat mengonfigurasi dan menjalankan tugas pembuatan image multi-arsitektur melalui konsol Container Registry. Untuk informasi lebih lanjut, lihat Bangun Image Container untuk Beberapa Arsitektur.