# 镜像概述
镜像是容器运行所需的软件包集合，包含操作系统、运行库和应用等，存储在SWR（容器镜像服务）镜像仓库中。AI DataLake提供镜像管理功能，统一管理计算引擎端点运行所需的容器镜像，支持预置镜像和自定义镜像两种镜像类型，并通过镜像加速能力加快端点容器启动，为端点和作业提供稳定、高效的运行环境。
#### 预置镜像
预置镜像是AI DataLake系统内置的容器镜像，为不同引擎类型的端点提供基础运行环境。预置镜像中已集成引擎运行所需的核心组件和依赖，创建端点时可直接选用，无需额外配置。预置镜像适用于快速创建端点并运行作业的场景，同时也可作为制作自定义镜像的基础镜像进行扩展。
了解更多，请参考[预置镜像](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0020.html)。
#### 自定义镜像
当预置镜像无法满足作业运行环境需求时，可基于预置镜像通过Dockerfile将自研算法库、特定版本的Python包、JAR包等特定软件依赖打包为自定义镜像，推送至容器镜像服务（SWR）并完成注册后，即可在创建端点时选用。自定义镜像适用于作业运行需要特定依赖、容器运行环境定制或标准化管理和复用运行环境的场景。
了解更多，请参考[自定义镜像](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0059.html)。
#### 镜像加速
AI DataLake提供镜像加速能力，支持预先从SWR、开源或自建镜像仓库拉取镜像并制作镜像快照，将镜像数据缓存到本地。通过为预置镜像或自定义镜像的镜像版本创建镜像快照，端点容器启动时可直接复用已缓存的镜像快照，跳过从SWR镜像仓库下载镜像的环节，缩短启动时间。镜像加速适用于对容器启动速度要求较高的场景，例如端点启动加速、弹性场景下快速拉起多个容器实例等。
了解更多，请参考[镜像加速](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0108.html)。
#### 镜像的使用场景
镜像在AI DataLake中有**两种使用场景**：
- **创建端点时** ：在创建端点时选择镜像，为端点运行提供所需的容器镜像。
  创建端点时支持配置镜像的端点：AuraJobV2、RayCluster、SparkSQL、SparkJob、FlinkJob（AuraJob、RayJob暂不支持）
  
- **提交作业时** ：提交作业时在作业参数中指定预置镜像或自定义镜像，为作业运行提供所需的容器镜像。
  提交作业时支持配置镜像的端点：AuraJob、RayJob、SparkJob、FlinkJob
  
镜像使用优先级：
- **创建端点时**：配置的端点镜像用于端点运行环境，并作为作业未指定镜像时的默认运行环境。
- **提交作业时**：作业镜像覆盖端点镜像，作业未指定镜像时自动使用端点镜像。
镜像快照基于镜像版本创建。如果当前所选镜像版本已创建镜像快照，选择该版本镜像时会**自动关联对应的镜像快照**，端点容器启动时自动使用快照创建镜像资源，无需额外操作。
各端点对预置镜像、自定义镜像及镜像快照的支持情况，请参见[表1 镜像及镜像快照支持列表]。
 #### 镜像及镜像快照支持列表
 表1镜像及镜像快照支持列表 
| 端点类型        | 资源使用模式 | 创建端点时配置镜像                                                                                    ||| 提交作业时配置镜像                                                                                  |||
|:---|:---|:---|---|---|:---|---|---|
| -          | -       | 预置镜像 | 自定义镜像 | 镜像快照  | 预置镜像    | 自定义镜像 | 镜像快照 |
| AuraJob      | 预留资源     | 不支持  | 不支持    | 不支持   | 不支持   | 支持     | 不支持 |
| AuraJob      | 混合模式    | 不支持   | 不支持    | 不支持 | 不支持  | 支持   | 不支持 |
| AuraJobV2  | 预留资源     | 支持  | 支持     | 不支持    | 不支持    | 不支持  | 不支持  |
| AuraJobV2  | 混合模式    | 支持  | 支持    | 支持      | 不支持 | 不支持  | 不支持   |
| RayJob      | 预留资源   | 不支持     | 不支持    | 不支持 | 支持     | 支持      | 支持    |
| RayJob      | 混合模式    | 不支持  | 不支持    | 不支持   | 支持   | 支持    | 支持   |
| RayJob      | 按需弹性   | 不支持  | 不支持    | 不支持  | 支持  | 支持  | 支持   |
| RayCluster | 预留资源    | 支持  | 支持     | 不支持  | 不支持    | 不支持 | 不支持 |
| SparkSQL    | 预留资源   | 支持    | 不支持    | 不支持   | 不支持     | 不支持  | 支持   |
| SparkSQL    | 混合模式   | 支持   | 不支持    | 支持    | 不支持  | 不支持   | 支持  |
| SparkSQL    | 按需弹性     | 支持     | 不支持  | 支持    | 不支持   | 不支持 | 支持   |
| SparkJob     | 预留资源     | 支持   | 支持     | 不支持  | 支持    | 支持      | 支持    |
| SparkJob     | 混合模式    | 支持    | 支持     | 支持    | 支持    | 支持  | 支持  |
| SparkJob     | 按需弹性    | 支持    | 支持     | 支持   | 支持   | 支持     | 支持    |
| FlinkJob    | 预留资源    | 支持   | 支持     | 不支持    | 支持      | 支持   | 支持    |
| FlinkJob    | 混合模式    | 支持     | 支持      | 支持    | 支持    | 支持   | 支持    |
| FlinkJob    | 按需弹性    | 支持    | 支持     | 支持   | 支持     | 支持     | 支持   |
   
