# ModelArts镜像功能介绍
在AI业务开发过程中，开发人员经常遇到环境依赖复杂、开发环境脆弱以及多环境切换困难等问题，这些问题严重影响了开发效率和模型迭代速度。如何解决这些问题，确保开发环境的稳定性和可移植性？ModelArts支持通过容器镜像的方式将运行环境进行固化，不仅能够进行依赖管理，而且可以方便地完成工作环境切换。配合ModelArts提供的云化容器资源使用，可以更加快速、高效地进行AI开发与模型实验的迭代。
本文介绍镜像的相关概念、预置镜像和自定义镜像的使用场景，以及如何制作自定义镜像。
#### 相关概念
- **ModelArts预置镜像** ：ModelArts提供了基于不同框架的预置镜像。用户可以在[ModelArts管理控制台](https://console.huaweicloud.com/modelarts/)创建Notebook、训练作业或在线推理时，直接选择这些预置镜像。详情请参见[ModelArts预置镜像](https://support.huaweicloud.com/docker-modelarts/docker-modelarts_6030.html)。
- **ModelArts统一镜像** ：ModelArts直接上传到容器镜像服务SWR的镜像，用户可以使用这些镜像的地址，在[ModelArts管理控制台](https://console.huaweicloud.com/modelarts/)注册镜像，或者通过docker pull命令拉取。详情请参见[ModelArts统一镜像](https://support.huaweicloud.com/docker-modelarts/docker-modelarts_6022.html)。

- **自定义镜像** ：用户参照ModelArts镜像规范制作的镜像。详情请参见[制作自定义镜像](https://support.huaweicloud.com/docker-modelarts/docker-modelarts_6024.html)。
 
#### 预置镜像使用场景
您可以直接使用ModelArts预置镜像创建Notebook实例、创建训练作业、在线推理等。ModelArts提供的预置镜像版本是依据用户反馈和版本稳定性决定的。当用户的功能开发基于ModelArts提供的版本能够满足的时候，例如用户开发基于MindSpore1.X，建议用户使用预置镜像，这些镜像经过充分的功能验证，并且已经预置了很多常用的安装包，用户无需花费过多的时间来配置环境即可使用。
ModelArts预置镜像有以下特点：
- 零配置，即开即用，面向特定的场景，将AI开发过程中常用的依赖环境进行固化，提供合适的软件、操作系统、网络等配置策略，通过在硬件上的充分测试，确保其兼容性和性能最合适。
- 方便自定义，预置镜像已经在SWR仓库中，通过对预置镜像的扩展完成自定义镜像注册。
- 安全可信，基于安全加固最佳实践，访问策略、用户权限划分、开发软件漏洞扫描、操作系统安全加固等方式，确保镜像使用的安全性。
 
#### 自定义镜像使用场景
当用户对深度学习引擎、开发库有特殊需求场景的时候，预置镜像已经不能满足用户需求。ModelArts提供自定义镜像功能支持用户自定义运行引擎。关于如何制作自定义镜像，请参见[制作自定义镜像](https://support.huaweicloud.com/docker-modelarts/docker-modelarts_6024.html)。
ModelArts底层采用容器技术，自定义镜像指的是用户自行制作容器镜像并在ModelArts上运行。自定义镜像功能支持自由文本形式的命令行参数和环境变量，灵活性比较高，便于支持任意计算引擎的作业启动需求。
在制作自定义镜像的时候，可以把ModelArts提供的预置镜像作为基础镜像，通过在Dockerfile中使用预置镜像的SWR地址来拉取预置镜像后进行改造。您可以在ModelArts预置镜像列表里获取镜像的SWR地址，操作请参见[查看预置镜像版本列表/镜像地址](https://support.huaweicloud.com/docker-modelarts/docker-modelarts_6030.html#ZH-CN_TOPIC_0000002546778909__section183172143113)。
用户制作的自定义镜像，使用的场景不同，镜像规则也不同，具体如下：
- 通用规则：SWR镜像类型为"私有"时，才可以共享给他人，适用于开发环境、训练作业、在线推理。
- 开发环境：SWR镜像类型为"公开"时，其他用户才可以在ModelArts镜像管理页面注册使用。
- 训练作业：SWR镜像类型为"公开"时，在使用自定义镜像创建训练作业时，按需选择镜像源地址。
 
#### 自定义镜像功能关联服务介绍
- 容器镜像服务 容器镜像服务（Software Repository for Container，SWR）是一种支持镜像全生命周期管理的服务， 提供简单易用、安全可靠的镜像管理功能，帮助您快速部署容器化服务。您可以通过界面、社区CLI和原生API上传、下载和管理容器镜像。
  您制作的自定义镜像需要上传至SWR服务。ModelArts开发环境、训练和在线推理使用的自定义镜像需要从SWR服务管理列表获取。
  图1获取镜像列表   
  ![](https://support.huaweicloud.com/docker-modelarts/figure/zh-cn_image_0000002546778927.png "点击放大")
  
  
- 对象存储服务 对象存储服务（Object Storage Service，OBS）是一个基于对象的海量存储服务，为客户提供海量、安全、高可靠、低成本的数据存储能力。
  在使用ModelArts时存在与OBS的数据交互，您需要使用的数据可以存储至OBS。
  
- 弹性云服务器 弹性云服务器（Elastic Cloud Server，ECS）是由CPU、内存、操作系统、云硬盘组成的基础的计算组件。弹性云服务器创建成功后，您就可以像使用自己的本地PC或物理服务器一样，使用弹性云服务器。
  在制作自定义镜像时，您可以在本地环境或者ECS上完成自定义镜像制作。
  
![](https://support.huaweicloud.com/docker-modelarts/public_sys-resources/note_3.0-zh-cn.png)
在您使用自定义镜像功能时，ModelArts可能需要访问您的容器镜像服务SWR、对象存储服务OBS等依赖服务，如果没有授权，这些功能将不能正常使用。建议您使用委托授权功能，将依赖服务操作权限委托给ModelArts服务，让ModelArts以您的身份使用依赖服务，代替您进行一些资源操作。详细操作参见[使用委托授权](https://support.huaweicloud.com/permission-modelarts/modelarts_24_0085.html)。
