Todos os produtos
Search
Central de documentação

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

Última atualização: Jul 03, 2026

Manter imagens separadas com tags diferentes para as arquiteturas x86 e Arm aumenta a sobrecarga de manutenção. Use docker buildx para compilar imagens multi-arquitetura a partir de um Dockerfile ou docker manifest para combinar imagens existentes de arquitetura única em uma única tag.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Uma instância do Container Registry Enterprise Edition. Para mais informações, consulte Crie uma instância do Container Registry Enterprise Edition.

  • Um cliente Docker instalado no dispositivo local. Para mais informações, consulte Instale o Docker.

  • Acesso à instância do Container Registry Enterprise Edition pelo cliente Docker. Execute o comando abaixo e substitua o espaço reservado pelo endereço do seu registro:

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

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

Compile uma imagem multi-arquitetura a partir de um Dockerfile

  1. Crie um Dockerfile no diretório do projeto. Este exemplo usa um projeto 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. Abra um terminal no diretório do projeto e execute os comandos a seguir:

    1. Desative a opção Provenance attestations do docker buildx:

      export BUILDX_NO_DEFAULT_ATTESTATIONS=1
    2. Compile a imagem multi-arquitetura e envie-a para o repositório de imagens:

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

      Esse comando compila imagens para as arquiteturas amd64 e arm64 e as envia ao repositório com uma única tag multi-arquitetura.

    Nota

    Antes de executar o comando docker push para enviar imagens a um repositório, execute o comando docker login para autenticar-se no repositório. Exemplo de comando docker login: docker login --username=xxx acr-test-registry.cn-hangzhou.cr.aliyuncs.com.

Crie uma imagem multi-arquitetura a partir de imagens existentes de arquitetura única

Use este método quando já houver imagens separadas de arquitetura única e for necessário combiná-las em uma única tag multi-arquitetura.

  1. Execute o comando docker tag para aplicar novas tags às imagens de arquitetura única e envie-as para a instância do Container Registry Enterprise Edition. O exemplo a seguir usa uma imagem NGINX arm64 e uma imagem 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. Execute o comando docker manifest create para criar uma lista de manifesto e mesclar as imagens da etapa 1 em uma imagem multi-arquitetura:

    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. Execute o comando docker manifest push para enviar a lista de manifesto à instância do Container Registry Enterprise Edition:

    docker manifest push acr-test-registry.cn-hangzhou.cr.aliyuncs.com/multi-arch/nginx:multi
  4. (Opcional) Verifique se a imagem multi-arquitetura foi enviada com sucesso:

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

    A saída lista os manifestos de cada arquitetura incluída.

Referências

Para configurar e executar compilações de imagens multi-arquitetura no console do Container Registry, consulte Compilar imagens de contêiner para múltiplas arquiteturas.