
# 使用AI DataLake镜像
在企业级AI训练场景中，用户通常需要依赖特定的软件环境来构建和优化模型，但当前系统缺乏统一的镜像管理能力，导致用户需自行维护镜像环境，无法将常用软件环境沉淀为可复用的资产。这种分散的管理方式不仅增加了环境配置的复杂性，还可能导致版本混乱和资源浪费。
为解决这一问题，系统新增镜像管理功能，支持客户通过统一界面注册、查询、修改和删除自定义镜像，并提供预置镜像的快速调用能力。用户可通过容器镜像服务（SWR）接入镜像资源，实现软件环境的标准化管理，同时平台通过预置镜像降低环境配置门槛，结合镜像生命周期管理能力，有效提升训练任务的部署效率并减少运维成本。
#### 约束与限制
当前仅支持在容器镜像服务（SWR）中创建的镜像。
#### 使用流程
图1自定义镜像使用流程   
![](https://support.huaweicloud.com/usermanual-aidatalake/zh-cn_image_0000002680332229.png "点击放大")
1. 在AI DataLake控制台查看预置镜像，获取SWR地址。
2. 使用Dockerfile将作业运行所需的依赖（文件、JAR包或软件）打包到镜像中，生成自定义镜像，并将镜像推送至SWR（容器镜像服务）。
3. 在AI DataLake控制台注册自定义镜像。
4. 创建端点时选择预置镜像或自定义镜像。不同引擎端点对预置镜像和自定义镜像的支持情况请参见[表2]。
 
#### 步骤1：查看预置镜像获取SWR地址
1. 登录[AI DataLake管理控制台](https://console.huaweicloud.com/fabric/)。
2. 在左侧导航栏，选择"资产管理 \> 镜像"。
3. 默认进入"预置镜像"页签，可以查看当前系统预置的镜像。 
   用户可以在上方的搜索框中通过关键字进行搜索。
   
   
4. 单击预置镜像，进入预置镜像详情，可以查看预置镜像的概览和版本。 
   单击"版本"页签，查看镜像版本，状态、类型、架构、SWR地址、软件版本数量及描述。
   
   
 
 #### 步骤2：制作自定义镜像
1. 准备容器环境。
   
   请参考[安装容器引擎](https://support.huaweicloud.com/qs-swr/index.html)文档中的"安装容器引擎"章节。
   
   
2. 使用root用户登录容器环境，执行以下命令获取基础镜像。 
   使用**docker pull** 方式下载基础镜像到[步骤1]中的容器环境。
   ```
   docker pull 基础镜像下载地址
   ```
   其中，"基础镜像下载地址"为预置镜像的SWR地址。
   
   
3. 连接容器镜像服务。 
   1. 登录SWR管理控制台。
   
   2. 选择左侧导航栏的"总览"，单击页面右上角的"登录指令"，在弹出的页面中单击![](https://support.huaweicloud.com/usermanual-aidatalake/zh-cn_image_0000002651583104.png)复制登录指令。
   
   3. 在安装容器引擎的虚拟机中执行上一步复制的登录指令。
   
   
   
   
4. 创建容器镜像组织。如果已创建组织则本步骤可以忽略。 
   1. 在SWR管理控制台的左侧导航栏中选择"组织管理"，单击页面右上角的"创建组织"。
   
   2. 填写组织名称，单击"确定"。
   
   
   
   
5. 编写Dockerfile文件。 
   本示例以Spark基础镜像为例。Dockerfile文件以FROM指令开头，必须使用预置镜像作为基础镜像。FROM指令之后，可添加对镜像进行自定义修改的指令。
   ```
   # Dockerfile
   FROM swr.cn-north-7.myhuaweicloud.com/dataartsfabric/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/
   ```
   
   
6. 创建Dockerfile后，执行以下命令构建自定义镜像。 
   ```
   # build the docker image
   docker build . -t 华为云SWR域名/组织/镜像名:版本
   ```
   
   
7. 将自定义镜像推送至SWR。 
   进入SWR首页，单击"登录指令"复制临时登录指令并执行，然后将镜像推送到SWR。
   ```
   # login to SWR
   docker login -u cn-north-7@HST3UHL10SX82DZF35VH -p cb5072848abf swr.cn-north-7.myhuaweicloud.com
   # push the docker image
   docker push 华为云SWR域名/组织/镜像名:版本
   ```
   
   
 
#### 步骤3：注册自定义镜像
1. 登录[AI DataLake管理控制台](https://console.huaweicloud.com/fabric/)。
2. 在左侧导航栏，选择"资产管理 \> 镜像"。
3. 选择"自定义镜像"页签，进入"自定义镜像"页面。 
   用户可在列表上方搜索框中，根据镜像名称、镜像类型、所属组织、描述进行搜索。
   图2查看自定义镜像   
   ![](https://support.huaweicloud.com/usermanual-aidatalake/zh-cn_image_0000002651423192.png "点击放大")
   
   
4. 单击界面右上角"注册镜像"，并参考下表配置相关参数。 
   表1注册镜像 
   | 参数     | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   |:---|:---|
   | 镜像源    | 自定义镜像的SWR地址。 单击选择框，并单击镜像名称，勾选镜像版本，单击"确定"。 说明： 目前Ray镜像版本仅支持2.54。 - 选择后会显示当前镜像源所属组织、名称、版本信息。  - 如果当前无可用SWR镜像，请先参考[推送镜像到镜像仓库]在SWR中创建自有镜像。  - 共享镜像无法在此处进行选择。   |
   | 描述     | 填写自定义镜像的描述信息。可选参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | 镜像类型   | 选择当前注册镜像的类型。 请根据镜像的实际用途进行选择，便于后续查找和管理： - AURA_JOB：Aura基础镜像  - RAY_BASIC：Ray基础镜像  - SPARK_JOB：Spark基础镜像  - SPARK_SQL：Spark SQL镜像                                   |
   | 关联预置镜像 | 镜像类型选择为SPARK_JOB时，需要关联预置镜像。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 版本类型   | 选择镜像版本类型。 请根据镜像实际情况进行选择： - 稳定：稳定的镜像版本。  - 推荐：推荐使用的镜像版本。  - BETA：调测时使用的镜像版本。                                                                                                                                                               |
   | CPU架构  | 选择当前注册镜像的CPU架构。根据实际情况选择"x86_64"或"AArch64"架构。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | 软件版本   | 填写软件的"名称"和"版本"。可选参数。 - 请根据实际情况进行填写，便于后续查找和管理。  - "名称"和"版本"长度范围为2\~32个字符。  - 可以单击"添加版本"新增多条，最多支持添加100条软件版本。                                                                                                                                                                        |
      
   
   
5. 填写完成后单击"确定"，完成创建。
6. 可以在自定义镜像列表中查看自定义镜像的名称、镜像类型、所属组织、版本总数、更新时间等信息。
7. 用户可以根据需要对自定义镜像添加版本或进行删除。 
   - 单击"操作"列中的"添加版本"，可以继续为当前镜像添加版本，最多支持100条软件版本。
   
   - 单击"操作"列中的"删除"，查看操作影响，并根据界面提示输入"DELETE"后，单击"确定"进行删除。
     ![](https://support.huaweicloud.com/usermanual-aidatalake/public_sys-resources/caution_3.0-zh-cn.png)
     - 删除操作会解除与SWR镜像的关联，对应的SWR镜像不受影响。
     
     - 删除操作无法恢复，请谨慎操作。
       
   
   
   
   
 
#### 步骤4：选择预置镜像/自定义镜像
在创建端点时，可选择预置镜像或自定义镜像。不同引擎端点对预置镜像和自定义镜像的支持情况如下表所示。
 表2引擎端点镜像选择说明 
| 引擎端点       | 是否支持选择预置镜像 | 是否支持选择自定义镜像 | 相关文档                                                                                                                                          |
|:---|:---|:---|:---|
| AuraJob    | 否          | 否           | -                                                                                                                                             |
| AuraJobV2  | 是          | 是           | [创建AuraJobV2引擎端点（推荐）](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0049.html#aidatalake_01_0049__section1920424019555) |
| RayCluster | 是          | 是           | [创建RayCluster端点](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0073.html#aidatalake_01_0073__section19842114115018)     |
| RayJob     | 否          | 否           | -                                                                                                                                             |
| SparkSQL   | 是          | 否           | [创建Spark引擎端点](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0065.html)                                                  |
| SparkJob   | 是          | 是           | [创建Spark引擎端点](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0065.html)                                                  |
   
