Todos os produtos
Search
Central de documentação

MaxCompute:Imagens personalizadas

Última atualização: Nov 02, 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 compatíveis.

  • Requisito de arquitetura de CPU: Crie 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 compatíveis.

  • Requisitos de versão de biblioteca: O ambiente de execução de jobs do MaxCompute é comparável ao CentOS 7. Ao criar uma imagem, use versões de pacotes compatíveis com o CentOS 7. O repositório yum na imagem base vem pré-configurado para usar a fonte 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 inicia, o MaxCompute monta seu ambiente de execução nesses diretórios e sobrescreve o conteúdo original.

Procedimento

Etapa 1: Instale o docker

Etapa 2: Conceder permissões

Conceda à conta ou ao usuário a permissão de leitura para funções 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 ram

Conta Alibaba Cloud (recomendado)

Por padrão, uma conta Alibaba Cloud possui permissão de leitura para funções 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: Crie uma imagem personalizada

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

Endereços das imagens

  • Endereços da imagem base CentOS do MaxCompute

    • Endereço público: maxcompute-oxs-registry.<region>.cr.aliyuncs.com/maxcompute_image/base_image:latest

    • Endereço vpc: maxcompute-oxs-registry-vpc.<region>.cr.aliyuncs.com/maxcompute_image/base_image:latest

    A imagem base fornece um ambiente básico que inclui Python 3.7, Python 3.11, pip e yum.

  • Endereços da imagem base Ubuntu do MaxCompute

    • Endereço público: maxcompute-oxs-registry.<region>.cr.aliyuncs.com/maxcompute_image/ubuntu_20.04:latest

    • Endereço vpc: maxcompute-oxs-registry-vpc.<region>.cr.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. Crie 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

    Você só pode enviar imagens personalizadas 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 para o 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 baixar uma imagem pública, faça login na instância Enterprise Edition. Se desejar permitir downloads anônimos, ative a configuração de download anônimo público para a instância.

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

    • 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% da aceleração do modo completo. A imagem acelerada corresponde a 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 desejado.

    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 (_).

    Use este nome para referenciar a imagem no MaxCompute SQL, PyODPS e MaxFrame.

    Image Type

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

    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

Você pode 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>"
    }