Tous les produits
Search
Centre de documentation

Container Registry:Build and push a multi-arch image on an on-premises device to a Container Registry Enterprise Edition instance

Dernière mise à jour :Aug 18, 2026

La maintenance d'images distinctes avec des tags différents pour les architectures x86 et Arm augmente la charge de travail. Utilisez docker buildx pour générer des images multi-architecture à partir d'un Dockerfile, ou utilisez docker manifest pour regrouper des images mono-architecture existantes sous un seul tag.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Une instance Container Registry Enterprise Edition. Pour plus d'informations, consultez la rubrique Créer une instance Container Registry Enterprise Edition.

  • Un client Docker installé sur votre appareil local. Pour plus d'informations, consultez la rubrique Installer Docker.

  • Un accès à l'instance Container Registry Enterprise Edition depuis le client Docker. Exécutez la commande suivante en remplaçant l'espace réservé par l'adresse de votre registre :

    docker login --username=<your-username> <registry-address>

    Exemple : docker login --username=xxx acr-test-registry.cn-hangzhou.cr.aliyuncs.com

Générer une image multi-architecture à partir d'un Dockerfile

  1. Créez un fichier Dockerfile dans le répertoire de votre projet. Cet exemple utilise un projet Java Maven :

    # First stage: build environment
    FROM maven:3.5.0-jdk-8-alpine AS builder
    
    ADD ./pom.xml pom.xml
    ADD ./src src/
    
    RUN mvn clean package
    
    # Second stage: minimal runtime environment
    FROM openjdk:8-jre-alpine
    
    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. Ouvrez un terminal dans le répertoire du projet et exécutez les commandes suivantes :

    1. Désactivez l'option Attestations de provenance de docker buildx :

      export BUILDX_NO_DEFAULT_ATTESTATIONS=1
    2. Générez l'image multi-architecture et envoyez-la vers votre dépôt d'images :

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

      Cette commande génère des images pour les architectures amd64 et arm64, puis les envoie vers le dépôt sous un seul tag multi-architecture.

    Remarque

    Avant d'exécuter la commande docker push pour envoyer des images vers un dépôt d'images, vous devez exécuter la commande docker login pour vous connecter au dépôt. Exemple de commande docker login : docker login --username=xxx acr-test-registry.cn-hangzhou.cr.aliyuncs.com.

Créer une image multi-architecture à partir d'images mono-architecture existantes

Utilisez cette méthode si vous disposez déjà d'images mono-architecture séparées et souhaitez les regrouper sous un seul tag multi-architecture.

  1. Exécutez la commande docker tag pour retagger les images mono-architecture, puis envoyez-les vers l'instance Container Registry Enterprise Edition. Cet exemple utilise une image NGINX arm64 et une image NGINX amd64 :

    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. Exécutez la commande docker manifest create pour créer une liste de manifests et fusionner les images de l'étape 1 en une image multi-architecture :

    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. Exécutez la commande docker manifest push pour envoyer la liste de manifests vers l'instance Container Registry Enterprise Edition :

    docker manifest push acr-test-registry.cn-hangzhou.cr.aliyuncs.com/multi-arch/nginx:multi
  4. (Facultatif) Vérifiez que l'image multi-architecture a bien été envoyée :

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

    La sortie liste les manifests pour chaque architecture incluse.

Références

Pour configurer et exécuter des générations d'images multi-architecture dans la console Container Registry, consultez la rubrique Générer des images de conteneurs pour plusieurs architectures.