更新时间:2026-10-21 GMT+08:00
分享

自定义镜像

当您在AI DataLake上运行作业时,可能需要使用特定的软件依赖或自定义的运行环境,例如自研算法库、特定版本的Python包等。AI DataLake提供预置镜像作为基础环境,您可基于预置镜像通过Dockerfile构建包含所需依赖的自定义镜像,推送至容器镜像服务(SWR)后,在AI DataLake控制台完成注册。注册后的自定义镜像可在创建端点时选用,实现运行环境的标准化管理和复用。

本节内容介绍如何查看预置镜像并获取SWR地址、制作并注册自定义镜像、为镜像版本创建镜像快照以加速容器启动以及在创建端点时选择镜像。

约束与限制

当前仅支持注册在容器镜像服务(SWR)中创建的镜像。

使用流程

图1 自定义镜像使用流程

  1. 在AI DataLake控制台查看预置镜像并获取对应的SWR地址。
  2. 使用Dockerfile将作业运行所需的依赖(文件、JAR包或软件)打包到镜像中,生成自定义镜像,并将镜像推送至SWR。
  3. 在AI DataLake控制台注册自定义镜像。
  4. (可选)在AI DataLake控制台为预置镜像或自定义镜像的镜像版本创建镜像快照,加速容器启动。
  5. 创建端点时选择预置镜像或自定义镜像。不同引擎端点对预置镜像和自定义镜像的支持情况请参见镜像及镜像快照支持列表。

步骤1:查看预置镜像并获取SWR地址

  1. 登录AI DataLake管理控制台。
  2. 在左侧导航栏选择“镜像管理”,进入镜像页面。
  3. 默认进入“预置镜像”页签,可以查看当前系统预置的镜像。

    用户可以在上方的搜索框中通过关键字进行搜索。

  4. 单击预置镜像,进入预置镜像详情,可以查看预置镜像的概览和版本信息。

    • 概览:查看镜像的基础信息。
    • 版本:查看镜像版本 / ID,状态、类型、架构、SWR地址、软件版本数量及描述;单击软件版本数量,可查看当前镜像的软件版本,包括服务端版本、引擎版本、Java版本、Scala版本、Python版本和发布日期。

步骤2:制作自定义镜像

  1. 准备容器环境。

    请参考安装容器引擎章节。

  2. 使用root用户登录容器环境,执行以下命令获取基础镜像。

    使用docker pull方式下载基础镜像到步骤1中的容器环境。

    docker pull 基础镜像下载地址

    其中,“基础镜像下载地址”为预置镜像的SWR地址。

  3. 连接容器镜像服务。

    1. 登录SWR管理控制台。
    2. 选择左侧导航栏的“总览”,单击页面右上角的“登录指令”,在弹出的页面中单击复制登录指令。
    3. 在安装容器引擎的虚拟机中执行上一步复制的登录指令。

  4. 创建容器镜像组织。如果已创建组织则本步骤可以忽略。

    1. 在SWR管理控制台的左侧导航栏中选择“组织管理”,单击页面右上角的“创建组织”。
    2. 填写组织名称,单击“确定”。

  5. 编写Dockerfile文件。

    • Aura:

      若自定义镜像存在新增第三方动态库,需要在环境变量LD_LIBRARY_PATH追加第三方动态库的路径(系统配置文件需要联系技术支持修改),否则可能会由于系统无法获取第三方动态库导致执行SQL报错。

      本示例以Aura基础镜像为例。Dockerfile文件以FROM指令开头,必须使用预置镜像作为基础镜像。FROM指令之后,可添加对镜像进行自定义修改的指令。

      # 1.声明基础镜像,Aura基础镜像swr地址获取,请参见步骤1:查看预置镜像并获取SWR地址。
      FROM your-registry/base-image:latest
      
      # 2.按需安装系统级依赖,如果您的Python包依赖系统级共享库(如libGL、libgomp)
      RUN yum install -y \
          mesa-libGL \
          libgomp \
          && yum clean all
      
      # 3.安装Python包
      RUN /opt/function/runtime/rtsp/python3.11/bin/pip install --no-cache-dir \
          grpcio==1.62.0 \
          opencv-python-headless==4.9.0.80 \
          scikit-learn==1.4.0
    • Ray:

      本示例以Ray基础镜像为例。Dockerfile文件以FROM指令开头,必须使用预置镜像作为基础镜像。FROM指令之后,可添加对镜像进行自定义修改的指令。

      # Dockerfile ,Ray基础镜像swr地址获取,请参见步骤1:查看预置镜像并获取SWR地址。
      FROM swr.cn-north-7.myhuaweicloud.com/dataartsfabric/ray:2.54.0rc0.PYTHON3_11_5.master.20260822154900.788257a
       
      USER root
      RUN pip install numpy==1.26.0 pandas scikit-learn
    • Spark:
      本示例以Spark基础镜像为例。Dockerfile文件以FROM指令开头,必须使用预置镜像作为基础镜像。FROM指令之后,可添加对镜像进行自定义修改的指令。
      # Dockerfile
      FROM swr.cn-north-7.myhuaweicloud.com/ai_datalake/spark_sql_test:4.0.0-3.2.0.202607221127157101575424.x86_64
       
      USER root
      # MODIFICATIONS GO HERE
      COPY . /opt/spark/jars/
       
      RUN chmod -R 550 /opt/spark/jars/
      RUN chown -R omm:ficommon /opt/spark/jars
    • Flink:

      本示例以Flink基础镜像为例。Dockerfile文件以FROM指令开头,必须使用预置镜像作为基础镜像。FROM指令之后,可添加对镜像进行自定义修改的指令。

      # Dockerfile
      FROM swr.cn-north-7.myhuaweicloud.com/ai_datalake/flink-public:1.20.0-<tag>
      USER root
      # MODIFICATIONS GO HERE
      COPY . /opt/flink/lib/
      RUN chmod -R 550 /opt/flink/lib/
      RUN chown -R omm:ficommon /opt/flink/lib/
      USER omm

  6. 创建Dockerfile后,执行以下命令构建自定义镜像。

    # build the docker image
    docker build . -t 华为云SWR域名/组织/镜像名:版本

  7. 将自定义镜像推送至SWR。

    进入SWR首页,单击“登录指令”复制临时登录指令并执行,然后将镜像推送到SWR。

    # login to SWR
    docker login -u cn-north-7@<用户名> -p <临时密码> swr.cn-north-7.myhuaweicloud.com
    # push the docker image
    docker push 华为云SWR域名/组织/镜像名:版本

步骤3:注册自定义镜像

  1. 登录AI DataLake管理控制台。
  2. 在左侧导航栏选择“镜像管理”,进入镜像页面。
  3. 选择“自定义镜像”页签,进入“自定义镜像”页面。

    用户可在列表上方搜索框中,根据镜像名称、镜像类型、所属组织、描述进行搜索。

    图2 查看自定义镜像

  4. 单击界面右上角“注册镜像”,并参考下表配置相关参数。

    表1 注册镜像

    参数

    参数说明

    镜像源

    自定义镜像的SWR地址。

    单击选择框,并单击镜像名称,勾选镜像版本,单击“确定”。

    说明:

    目前Ray镜像版本仅支持2.54。

    • 选择后会显示当前镜像源所属组织、名称、版本信息。
    • 如果当前无可用SWR镜像,请先参考步骤2:制作自定义镜像在SWR中创建自有镜像。

    描述

    填写自定义镜像的描述信息。可选参数。

    镜像类型

    选择当前注册镜像的类型。

    请根据镜像的实际用途进行选择,便于后续查找和管理:

    • AURA_JOB:Aura基础镜像
    • RAY_BASIC:Ray基础镜像
    • SPARK_JOB:Spark基础镜像
    • FLINK_JOB:Flink基础镜像

    关联预置镜像

    镜像类型选择为SPARK_JOB或FLINK_JOB时,需要关联预置镜像。

    版本类型

    选择镜像版本类型。

    请根据镜像实际情况进行选择:

    • 稳定:稳定的镜像版本。
    • 推荐:推荐使用的镜像版本。
    • BETA:调测时使用的镜像版本。

    CPU架构

    选择当前注册镜像的CPU架构。根据实际情况选择“x86_64”或“AArch64”架构。

    软件版本

    填写软件的“名称”和“版本”。可选参数。

    • 请根据实际情况进行填写,便于后续查找和管理。
    • “名称”和“版本”长度范围为2~32个字符。
    • 可以单击“添加版本”新增多条,最多支持添加100个软件版本。

  5. 填写完成后单击“确定”,完成创建。
  6. 可以在自定义镜像列表中查看自定义镜像的名称、镜像类型、所属组织、版本总数、更新时间等信息。
  7. 用户可以根据需要对自定义镜像添加版本或进行删除。

    • 单击“操作”列中的“添加版本”,可以继续为当前镜像添加版本,最多支持100个软件版本。
    • 单击“操作”列中的“删除”,查看操作影响,并根据界面提示输入“DELETE”后,单击“确定”进行删除。
      • 删除操作会解除与SWR镜像的关联,对应的SWR镜像不受影响。
      • 删除操作无法恢复,请谨慎操作。

(可选)步骤4:创建镜像快照

  1. 登录AI DataLake管理控制台。
  2. 在左侧导航栏选择“镜像管理”,进入镜像页面。
  3. 选择“镜像加速”页签,进入镜像加速页面。
  4. 单击右上角的“创建镜像快照”,进行参数配置。

    表2 创建镜像快照参数配置说明

    参数

    说明

    快照名称

    镜像快照的名称,用于标识快照用途。

    以小写字母开头,小写字母、数字、中划线(-)组成,小写字母或数字结尾的1到190字符的字符串。

    选择目标镜像

    选择需要创建镜像快照的镜像版本。

    快照保留时间

    快照创建后的保留天数,到期自动删除。

    可选择“永久有效”或“自定义天数”,其中自定义天数为1~65536天。

  5. 单击“确定”,开始创建镜像快照。
  6. 在镜像快照列表中查看快照状态。状态从“创建中”变为“可用”时,表示快照创建成功。

步骤5:选择预置镜像/自定义镜像

创建端点时选择预置镜像或自定义镜像。不同引擎端点对预置镜像和自定义镜像的支持情况请参见镜像及镜像快照支持列表。

相关文档