すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:カスタムイメージ

最終更新日:Dec 02, 2025

このトピックでは、MaxCompute のカスタムイメージ機能の使用方法について説明します。

背景情報

SQL または Python 開発には、複雑なビジネスロジックや複数のサードパーティパッケージへの依存関係が含まれることがよくあります。このプロセスを簡素化するために、MaxCompute はカスタムイメージ管理機能を提供します。Docker イメージを使用して、MaxCompute SQL および Python (PyODPS または MaxFrame) 開発のための完全な開発環境を構築できます。

適用範囲

  • イメージサイズ:単一のカスタムイメージの最大サイズは 10 GB です。

  • イメージ数:単一のテナントがアップロードできるイメージは最大 10 個です。

  • ACR バージョン要件:Container Registry (ACR) Enterprise Edition の Standard Edition または Premium Edition インスタンスのみがサポートされています。

  • CPU アーキテクチャ要件:イメージは x86_64 アーキテクチャの CPU を使用してビルドする必要があります。macOS M シリーズや ARM など、他のアーキテクチャの CPU はサポートされていません。

  • ライブラリバージョンの要件:MaxCompute ジョブのランタイム環境は CentOS 7 に基づいています。したがって、イメージをビルドする際には、CentOS 7 と互換性のあるパッケージバージョンを使用する必要があります。ベースイメージの yum ソースは、Alibaba Cloud の CentOS 7 イメージソースアドレスを使用するように設定されています。

  • イメージ内のファイルディレクトリ操作に関する制限

    pip や yum などのパッケージマネージャーを使用する場合、個人ファイルを /home/admin、/usr/local/lib、/usr/ali、または /apsara ディレクトリに配置しないでください。コンテナーが起動すると、MaxCompute はランタイム環境をこれらのディレクトリにマウントし、イメージディレクトリ内の元のコンテンツを上書きします。

操作手順

ステップ 1:Docker のインストール

  • Linux 環境の場合:Docker 公式ドキュメントの指示に従って Docker をインストールします。

  • macOS または Windows 環境の場合:

    • 個人開発者:Docker Desktop を使用します。

    • ライセンスを購入していないエンタープライズユーザー:オープンソースの Rancher Desktop を使用します。

ステップ 2:権限の付与

ご利用のアカウントまたは RAM ユーザーに必要な権限を付与します。RAM ロールに対する読み取り権限、ACR (Container Registry) に対する操作権限、および MaxCompute カスタムイメージに対する操作権限が必要です。詳細は次のとおりです:

認証シナリオ

アカウントタイプ

権限要件

ガイダンス

RAM ロールに対する読み取り権限

Alibaba Cloud アカウント (推奨)

Alibaba Cloud アカウントは、デフォルトで RAM ロールに対する読み取り権限を持っています。追加の権限付与は不要です。

該当なし

RAM ユーザー

AliyunRAMReadOnlyAccess 権限を付与します。

ACR に対する操作権限

Alibaba Cloud アカウント (推奨)

Alibaba Cloud アカウントは、デフォルトで ACR に対するすべての操作権限を持っています。追加の権限付与は不要です。

該当なし

RAM ユーザー

RAM ユーザーを使用して ACR で操作を実行する場合は、RAM ユーザーに AliyunContainerRegistryReadOnlyAccess 権限を付与します。

RAM ユーザーへの ACR の権限付与

MaxCompute カスタムイメージに対する操作権限

Alibaba Cloud アカウント (推奨)

Alibaba Cloud アカウントは、デフォルトで MaxCompute のカスタムイメージの表示、追加、削除に関するすべての権限を持っています。追加の権限付与は不要です。

該当なし

RAM ユーザー

RAM ユーザーを使用して MaxCompute カスタムイメージで操作を実行する場合は、RAM ユーザーに必要な権限を付与します。

ステップ 3:Docker でのカスタムイメージのビルド

Dockerfile を使用して、MaxCompute ベースイメージからカスタムイメージをビルドします。

  • MaxCompute CentOS ベースイメージのアドレスは registry.cn-zhangjiakou.aliyuncs.com/maxcompute_image/base_image:latest です。このベースイメージは、Python 3.7、Python 3.11、pip、yum などの基本的な環境を提供します。

  • MaxCompute Ubuntu ベースイメージのアドレスは registry.cn-zhangjiakou.aliyuncs.com/maxcompute_image/ubuntu_20.04:latest です。

  1. 次のコマンドを実行して、MaxCompute ベースイメージからカスタムイメージをビルドするための Dockerfile を作成します。

    vim DockerFile
  2. Dockerfile に次の内容を追加します。

    # MaxCompute CentOS ベースイメージを使用
    FROM registry.cn-zhangjiakou.aliyuncs.com/maxcompute_image/base_image:latest
    
    # Ubuntu イメージを使用する場合は、イメージアドレスを registry.cn-zhangjiakou.aliyuncs.com/maxcompute_image/ubuntu_20.04:latest に置き換えます
    
    # システムの依存関係をインストール
    RUN yum install vi -y
    
    # サードパーティライブラリをインストール
    RUN /usr/ali/python3.7/bin/python3 -m pip install --no-cache-dir pandas
  3. Dockerfile からイメージをビルドします。

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

    パラメーター:

    • image_name:カスタムイメージの名前。

    • tag:カスタムイメージのバージョン。

ステップ 4:カスタムイメージの ACR へのアップロード

  1. Container Registry コンソールにログインし、左上隅でリージョンを選択します。

  2. 左側のナビゲーションウィンドウで、インスタンス をクリックします。

  3. インスタンス ページで、インスタンスの作成 をクリックします。すでにインスタンスを作成している場合は、このステップをスキップします。

    重要

    カスタムイメージは、ACR Enterprise Edition の Standard Edition または Premium Edition インスタンスにのみアップロードできます。

  4. インスタンス ページで、対象の Enterprise インスタンスを見つけ、管理 をクリックして概要ページを開きます。

  5. 左側のナビゲーションウィンドウで、リポジトリ > リポジトリ を選択します。

    リポジトリ > リポジトリ ページで、リポジトリの作成 をクリックします。リポジトリの作成 ダイアログボックスで、次の情報を入力し、次へ をクリックします。

    パラメーター

    必須

    説明

    リージョン

    必須

    現在のインスタンスが存在するリージョンが自動的に選択されます。

    名前空間

    必須

    イメージリポジトリの名前空間。このパラメーターは設定後に変更できません。

    • Aliyun など、会社、組織、または個人ユーザーに対応する名前空間を作成することを推奨します。

    • Tomcat、CentOS、アプリケーション、モジュールなど、モジュールやシステムに対応する名前空間を作成することは推奨しません。

    リポジトリ名

    必須

    名前は 2~120 文字で、小文字、数字、区切り文字を含めることができます。区切り文字には、アンダースコア (_)、ハイフン (-)、ピリオド (.)、スラッシュ (/) を使用できます。区切り文字を先頭または末尾の文字にすることはできません。

    リポジトリタイプ

    オプション

    • パブリックイメージをプルするには、Enterprise Edition インスタンスにログインする必要があります。匿名プルを許可するには、インスタンスの匿名プルを有効にします。

    • Enterprise Edition インスタンスから非公開イメージをプルするには、インスタンスにログインし、プル権限を持っている必要があります。

    • デフォルト値は非公開です。

    タグ

    オプション

    選択後、リポジトリ内の最新のタグ以外のすべてのタグは上書きできないため、Docker イメージの整合性が確保されます。

    高速化イメージ

    オプション

    選択後、リポジトリ内のすべてのイメージに対してサフィックス "_accelerated" が付加された高速化イメージが生成されます。

    • フルモードフルモードでの加速効果はより大きくなります。高速化イメージのファイルサイズは元のイメージの約 130% であり、1 GB の高速化イメージの生成時間は約 25 秒です (生成されたイメージレイヤーは重複して生成されません)

    • インデックス専用モード (パブリックプレビュー中):このモードは、フルモードの約 70% の高速化効果を提供します。高速化イメージのサイズは、元のイメージサイズの約 3% です。1 GB の高速化イメージを生成するのに約 3 秒かかります。インデックスがすでに生成されているイメージレイヤーは、再度生成されません。

    サマリー

    必須

    100 文字以内で入力してください。

    説明

    オプション

    Markdown フォーマットをサポートします。

  6. コードソースの設定:

    コードソースローカルリポジトリ に設定し、リポジトリの作成 をクリックします。

    詳細については、「Enterprise Edition インスタンスを使用したイメージのビルド」をご参照ください。

  7. ビルドしたカスタムイメージを ACR にアップロードします。

    1. リポジトリ > リポジトリ ページで、目的のリポジトリを見つけ、操作 列の 管理 をクリックします。

    2. 左側のナビゲーションウィンドウで、詳細 をクリックします。

      詳細 ページの イメージの操作手順 セクションの指示に従って、Docker 環境から ACR イメージリポジトリにカスタムイメージをアップロードします。

    3. (オプション) ご利用のマシンが VPC 内にある場合は、次の手順を実行します。

      1. Enterprise Edition インスタンスに接続できるように、VPC アクセスを設定します。詳細については、「VPC 経由のアクセスの設定」をご参照ください。

      2. Docker 環境で ACR Enterprise Edition インスタンスを操作する場合は、ドメイン名に vpc を追加します。たとえば、次のコマンドで acr-test-registry.cn-wulanchabu.cr.aliyuncs.comacr-test-registry-vpc.cn-wulanchabu.cr.aliyuncs.com に変更します。

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

      インスタンスへのログイン時にエラーが発生した場合は、リポジトリのパブリックネットワークアクセスが有効になっているか確認してください。

ステップ 5:MaxCompute へのカスタムイメージの追加

ACR 内の既存のイメージを MaxCompute に関連付けて、開発イメージを一元管理します。

  1. MaxCompute コンソールにログインし、左上隅でリージョンを選択します。

  2. 左側のナビゲーションウィンドウで、構成の管理 > イメージ管理 を選択します。

  3. イメージ管理 ページで、カスタムイメージ タブをクリックします。

  4. カスタムイメージ タブで、ミラーの作成 をクリックします。表示される ミラーを追加 ダイアログボックスで、次のパラメーターを設定します。

    説明

    初めてイメージを作成するときに、[MaxCompute のサービスリンクロール] ダイアログボックスが表示されます。[OK] をクリックして、ACR リソースにアクセスするためのサービスリンクロールを自動的に作成します。

    パラメーター

    説明

    ミラー名

    必須。カスタムイメージの名前。イメージ名は小文字で始まり、小文字、数字、水平バー、およびアンダースコアのみを使用できます。

    この名前は、後続の MaxCompute SQL、PyODPS、および MaxFrame 開発で使用されます。

    ミラータイプ

    必須。ACR イメージのタイプ。ACR Enterprise Edition イメージのみがサポートされています。

    Enterprise Editionミラーインスタンス

    必須。ACR で作成した Enterprise Edition イメージインスタンスを選択します。

    ミラー名前空間

    必須。ACR で作成した Enterprise Edition イメージの名前空間を選択します。

    ミラー倉庫

    必須。ACR で作成した Enterprise Edition イメージリポジトリを選択します。

    ミラーバージョン

    必須。ACR にアップロードしたイメージのバージョンを選択します。

    ミラーの説明

    必須。イメージの説明を追加します。

    OK をクリックします。カスタムイメージが作成され、カスタムイメージリストに追加されます。

ステップ 6:カスタムイメージの使用

MaxCompute SQL のユーザー定義関数 (UDF)、PyODPS、および MaxFrame 開発でカスタムイメージを使用できます。

重要

各開発ジョブではイメージを 1 つしか指定できません。そうしないと、イメージの競合が発生する可能性があります。

  • UDF を呼び出すとき:フラグを使用して、SQL セッションレベルで必要なイメージと Python バージョンを指定できます。コマンドは次のとおりです。

    set odps.sql.python.version=cp37;
    set odps.session.image = <image_name>;
  • PyODPS 開発において:execute または persist メソッドの image パラメーターを使用して、既存のイメージを指定できます。コマンドは次のとおりです。

    説明

    PyODPS 開発でイメージを参照するには、PyODPS をバージョン 0.11.5 以降にアップグレードする必要があります。

    image='<image_name>'
  • MaxFrame 開発において:現在のジョブに既存のイメージを指定できます。関連するパラメーターは次のとおりです。

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