Todos os produtos
Search
Central de documentação

MaxCompute:Imagens personalizadas

Última atualização: Jul 20, 2026

As imagens personalizadas do MaxCompute permitem empacotar dependências de terceiros em imagens docker para uso em jobs SQL e Python (PyODPS ou MaxFrame).

Contexto

O desenvolvimento em SQL e Python no MaxCompute frequentemente depende de diversos pacotes de terceiros. O recurso de gerenciamento de imagens personalizadas permite usar imagens docker para criar ambientes de desenvolvimento completos para seus jobs MaxCompute SQL e Python (PyODPS ou MaxFrame).

Pré-requisitos

  • Tamanho da imagem: O tamanho máximo de uma única imagem personalizada no MaxCompute é de 10 GB.

  • Quantidade de imagens: Cada tenant do MaxCompute pode enviar até 10 imagens.

  • Requisitos de versão do ACR: Apenas instâncias Standard Edition e Premium Edition do ACR Enterprise Edition são suportadas.

  • Requisito de arquitetura de CPU: Construa suas imagens em uma arquitetura de CPU x86_64. Arquiteturas não x86_64, como chips da série M do macOS e ARM, não são suportadas.

  • Requisitos de versão de biblioteca: O ambiente de execução de jobs do MaxCompute é comparável ao CentOS 7. Ao construir uma imagem, utilize versões de pacotes compatíveis com o CentOS 7. O source do yum na imagem base vem pré-configurado para usar o source de imagem CentOS 7 da Alibaba Cloud.

  • Restrições de diretório:

    Ao usar ferramentas como pip ou yum para instalar pacotes, não coloque arquivos pessoais nos diretórios /home/admin, /usr/local/lib, /usr/ali, /apsara. Quando um contêiner é iniciado, o MaxCompute monta seu ambiente de execução nesses diretórios e sobrescreve o conteúdo original.

Procedimento

Etapa 1: Instalar o docker

Etapa 2: Conceder permissões

Conceda à conta ou ao usuário a permissão de leitura para funções do RAM, **permissões operacionais para ACR e permissões operacionais para imagens personalizadas do MaxCompute**, conforme descrito na tabela a seguir.

Caso de uso

Tipo de conta

Permissões

Referência

Permissão de leitura para funções do RAM

Conta Alibaba Cloud (recomendado)

Por padrão, uma conta Alibaba Cloud possui permissão de leitura para funções do RAM. Nenhuma autorização é necessária.

N/A

Usuário RAM

Conceda a permissão AliyunRAMReadOnlyAccess.

Permissões operacionais do ACR

Conta Alibaba Cloud (recomendado)

Por padrão, uma conta Alibaba Cloud possui todas as permissões para o ACR. Nenhuma autorização é necessária.

N/A

Usuário RAM

Um usuário RAM requer a permissão AliyunContainerRegistryReadOnlyAccess para operar o ACR.

Authorize a RAM user for ACR

Permissões operacionais de imagens personalizadas do MaxCompute

Conta Alibaba Cloud (recomendado)

Por padrão, uma conta Alibaba Cloud possui permissões totais para gerenciar imagens personalizadas no MaxCompute. Nenhuma autorização é necessária.

N/A

Usuário RAM

Para que um usuário RAM gerencie imagens personalizadas do MaxCompute, conceda as permissões necessárias com base nos seus requisitos de negócios.

Etapa 3: Construir uma imagem personalizada

Construa uma imagem personalizada usando um Dockerfile baseado em uma imagem base do MaxCompute.

  • A URL da imagem base CentOS do MaxCompute é registry.cn-zhangjiakou.aliyuncs.com/maxcompute_image/base_image:latest. Essa imagem base fornece um ambiente básico que inclui Python 3.7, Python 3.11, pip e yum.

  • O endereço da imagem base Ubuntu do MaxCompute é registry.cn-zhangjiakou.aliyuncs.com/maxcompute_image/ubuntu_20.04:latest.

  1. Crie um Dockerfile baseado em uma imagem base do MaxCompute. Execute este comando:

    vim DockerFile
  2. Adicione o seguinte conteúdo ao Dockerfile:

    # Use the MaxCompute CentOS base image.
    FROM registry.cn-zhangjiakou.aliyuncs.com/maxcompute_image/base_image:latest
    
    # To use the Ubuntu image, replace the image address with registry.cn-zhangjiakou.aliyuncs.com/maxcompute_image/ubuntu_20.04:latest.
    
    # Install system dependencies.
    RUN yum install vi -y
    
    # Install third-party libraries.
    RUN /usr/ali/python3.7/bin/python3 -m pip install --no-cache-dir pandas
  3. Construa a imagem a partir do Dockerfile.

    sudo docker build -f DockerFile -t <image_name>:<tag> .

    Parâmetros:

    • image_name: O nome da imagem personalizada.

    • tag: A versão da imagem personalizada.

Etapa 4: Enviar imagem para o ACR

  1. Faça login no console do Container Registry e selecione uma região no canto superior esquerdo.

  2. No painel de navegação à esquerda, selecione Instances.

  3. Na página Instances, clique em Create ACR EE. Caso já tenha criado uma instância, pule esta etapa.

    Importante

    O envio de imagens personalizadas só é possível para instâncias Standard Edition ou Premium Edition do ACR Enterprise Edition.

  4. Na página Instances, localize a instância Enterprise Edition desejada e clique em Manage para abrir a página de visão geral da instância.

  5. No painel de navegação à esquerda, selecione Repository > Repositories.

    Na página Repository > Repositories, clique em Create Repository. Na caixa de diálogo Create Repository, insira as informações abaixo e clique em Next.

    Parâmetro

    Obrigatório

    Descrição

    Region

    Sim

    A região da instância atual é preenchida automaticamente.

    Namespace

    Sim

    Defina o namespace do repositório de imagens. Esta configuração não pode ser alterada posteriormente.

    • Recomendamos criar um namespace correspondente a uma empresa, organização ou usuário individual, como aliyun.

    • Não recomendamos criar um namespace correspondente a um módulo ou sistema, como tomcat ou centos.

    Repository Name

    Sim

    O nome deve ter entre 2 e 120 caracteres e pode conter letras minúsculas, números e os seguintes separadores: sublinhados (_), hífens (-), pontos (.) e barras (/). O nome não pode começar ou terminar com um separador.

    Repository Type

    Não

    • Public: Para fazer pull de uma imagem pública, é necessário fazer login na instância Enterprise Edition. Se desejar permitir pulls anônimos, ative a configuração de pull anônimo público para a instância.

    • Fazer pull de uma imagem privada da Enterprise Edition exige login em uma instância Enterprise Edition com permissões de pull.

    • O padrão é privado.

    Tags

    Não

    After selected, all tags other than the latest in the repository cannot be overwritten, ensuring the consistency of the container images.

    Accelerated Image

    Não

    After selected, all images in the repository will automatically generate the accelerated images with "_accelerated" suffix

    • Full Mode: Full mode provides a significant acceleration effect. The size of an accelerated image is approximately 130% the size of the original image. The system requires approximately 25 seconds to generate a 1 GB-sized accelerated image. If an accelerated image layer has been generated for an image layer, the system does not generate an accelerated image layer again for the image layer.

    • Index-only Mode (Public Preview): Este modo oferece cerca de 70% do efeito de aceleração do modo completo. A imagem acelerada tem aproximadamente 3% do tamanho da imagem original. Leva cerca de 3 segundos para gerar uma imagem acelerada de 1 GB. Camadas já indexadas não são reindexadas.

    Summary

    Sim

    Max. 100 characters

    Description

    Não

    Supports Markdown Format

  6. Configure a origem do código:

    Em Code Source, selecione Local Repository e clique em Create Repository.

    Para mais informações, consulte Use an Enterprise Edition instance to build images.

  7. Envie a imagem personalizada para uma instância do ACR na mesma conta.

    1. Na página Repository Repositories, clique em Manage na coluna Actions do repositório alvo.

    2. No painel de navegação à esquerda, selecione Details.

      Siga as instruções em Instructions on Images na parte inferior da página Details para enviar uma imagem personalizada do seu ambiente docker para o repositório de imagens do Container Registry.

    3. (Opcional) Se sua máquina estiver em uma VPC, execute as etapas a seguir:

      1. Configure o controle de acesso para a VPC se conectar à instância Enterprise Edition. Para mais informações, consulte Configure access over a VPC.

      2. Ao trabalhar com uma instância do ACR Enterprise Edition em um ambiente docker, adicione vpc ao nome de domínio. Por exemplo, altere acr-test-registry.cn-wulanchabu.cr.aliyuncs.com para acr-test-registry-vpc.cn-wulanchabu.cr.aliyuncs.com.

        $ docker login --username=***@test.aliyunid.com acr-test-registry.cn-wulanchabu.cr.aliyuncs.com
      Nota

      Se ocorrer um erro ao fazer login na instância, verifique se o acesso à rede pública está ativado para o repositório.

Etapa 5: Adicionar imagem ao MaxCompute

Associe uma imagem existente do ACR ao MaxCompute para gerenciar centralmente suas imagens de desenvolvimento.

  1. Faça login no console do MaxCompute e selecione uma região no canto superior esquerdo.

  2. No painel de navegação à esquerda, escolha Manage Configurations > Images .

  3. Na página Images, clique na aba Custom Image.

  4. Na aba Custom Image, clique em Create Image. Na caixa de diálogo Add Image, configure os seguintes parâmetros:

    Nota

    Ao criar uma imagem pela primeira vez, a caixa de diálogo MaxCompute Service-linked Role aparece. Clique em OK. O sistema cria automaticamente uma função vinculada ao service para acessar recursos do ACR.

    Parâmetro

    Descrição

    Image Name

    Obrigatório. O nome da imagem personalizada. The image name must start with a lowercase letter, and can contain only lowercase letters, digits, hyphens (-), and underscores (_).

    Este nome é usado para referenciar a imagem no MaxCompute SQL, PyODPS e MaxFrame.

    Image Type

    Obrigatório. O tipo da imagem do ACR. Apenas imagens do ACR Enterprise Edition são suportadas.

    Enterprise Edition Image Instance

    Obrigatório. Selecione a instância Enterprise Edition criada no ACR.

    Image Namespace

    Obrigatório. Selecione o namespace de imagem criado no ACR.

    Image Repository

    Obrigatório. Selecione o repositório de imagens criado no ACR.

    Image Version

    Obrigatório. Selecione a versão da imagem enviada ao ACR.

    Image Description

    Obrigatório. Adicione uma descrição para a imagem.

    Clique em OK. A nova imagem personalizada aparecerá na lista de imagens personalizadas.

Etapa 6: Usar a imagem

É possível referenciar imagens personalizadas em UDFs SQL do MaxCompute, PyODPS e MaxFrame.

Importante

Cada job pode especificar apenas uma imagem. Especificar mais de uma pode causar conflitos de imagem.

  • Para UDFs, use flags no nível de sessão para especificar a imagem e a versão do Python. Exemplo:

    set odps.sql.python.version=cp37;
    set odps.session.image = <image_name>;
  • Para PyODPS, use o parâmetro image dos métodos execute ou persist para especificar a imagem. Exemplo:

    Nota

    Para referenciar uma imagem no PyODPS, atualize o PyODPS para a versão V0.11.5 ou posterior.

    image='<image_name>'
  • Para MaxFrame, use a seguinte configuração para especificar a imagem do job:

    config.options.sql.settings = {
        "odps.session.image": "<image_name>"
    }