
# 保存Notebook实例
通过预置的镜像创建Notebook实例，在基础镜像上安装对应的自定义软件和依赖，在管理页面上进行操作，进而完成将运行的实例环境以容器镜像的方式保存下来。镜像保存后，默认工作目录是根目录"/"路径。
保存的镜像中，安装的依赖包不丢失，持久化存储的部分（home/ma-user/work目录的内容）不会保存在最终产生的容器镜像中。VS Code远程开发场景下，在Server端安装的插件不丢失。
镜像保存功能通过在原始镜像基础上叠加新层（New Layer）实现版本迭代。由于镜像层具有不可变性，无论执行新增或删除操作，生成的新镜像体积将大于原始镜像。
![](https://support.huaweicloud.com/devtool-modelarts/public_sys-resources/note_3.0-zh-cn.png)
- 当镜像保存失败时，请在Notebook实例详情页查看事件，事件描述请参考[查看Notebook实例事件](https://support.huaweicloud.com/devtool-modelarts/devtool-modelarts_0230.html)。
- 建议保存的镜像大小不要超过35G，镜像层数不要超过125层，因为节点容器存储Rootfs差异（详细请参考[容器引擎空间分配](https://support.huaweicloud.com/api-cce/cce_01_0341.html#section1)），可能会导致镜像保存失败。
  - 如使用的是专属资源池，可尝试在"专属资源池扩缩容"页面按需调整容器引擎空间大小，具体步骤请参考[扩缩容专属资源池的"修改容器引擎空间大小"](https://support.huaweicloud.com/resmgmt-modelarts/resmgmt-modelarts_0006.html)。
  
  - 如果问题仍未解决，请联系技术支持。
   
- ContainerD镜像保存功能使用说明：
  - 不建议在实例内同时执行文件下载任务和镜像保存任务，以避免资源竞争导致性能下降。
  
  - 如果实例系统文件夹（如/opt/等）中存在10G以上的大文件，不建议使用镜像保存功能，以免镜像体积过大或保存时间过长。
   
 
#### 前提条件
Notebook实例状态为"运行中"。
#### 保存镜像
1. 在Notebook列表中，对于要保存的Notebook实例，单击右侧"操作"列的"保存镜像"。
2. 在"保存镜像"页面，配置相关参数，勾选"我已知晓变更带来的风险，同意进行镜像保存"，单击"确定"保存镜像。 保存方式支持"保存至已有"或"新建镜像"。
   - 保存至已有：将镜像保存为当前已注册镜像的新版本，即"已注册镜像"页面已有的镜像文件夹内。
   
   - 新建镜像：镜像将保存至容器镜像服务SWR，保存完成后会自动注册至ModelArts。
   
   
   表1参数说明 
   | 保存方式  | 参数   | 说明                                                                                                                                                                                                                                                                                                                                                                 |
   |:---|:---|:---|
   | 保存至已有 | 镜像   | 单击镜像选择框，在"选择镜像"面板，按需选择基础仓库或企业仓库中的镜像，单击"确定"。                                                                                                                                                                                                                                                                                                                        |
   | 保存至已有 | 镜像版本 | 自定义镜像的版本。支持大小写字母、数字、下划线、中划线和半角句号，最大长度为64个字符。                                                                                                                                                                                                                                                                                                                       |
   | 保存至已有 | 描述   | 自定义镜像的描述，不能包含字符\&\<\>"'/，输入长度范围为0到256个字符。                                                                                                                                                                                                                                                                                                                          |
   | 新建镜像  | 镜像仓库 | 按需选择SWR基础版或企业版镜像仓库。默认使用SWR基础版仓库。 如果您需要使用企业版镜像仓库，可在SWR进行注册。容器镜像服务企业版的镜像仓库为注册表名称。具体操作，请参见[用户指南（企业版）](https://support.huaweicloud.com/usermanual2-swr/swr_02_0402.html)。 关于SWR基础版与企业版的区别，请参见[基础版及企业版对比](https://support.huaweicloud.com/productdesc-swr/swr_03_0020.html)。 |
   | 新建镜像  | 域名   | 仅"镜像仓库"选择SWR企业版，需配置此参数。 容器镜像服务企业版的访问地址。                                                                                                                                                                                                                                                                                |
   | 新建镜像  | 命名空间 | 仅"镜像仓库"选择SWR企业版，需配置此参数。 命名空间在容器镜像服务（企业版）中用于隔离镜像仓库。                                                                                                                                                                                                                                                                  |
   | 新建镜像  | 所属组织 | 仅"镜像仓库"选择SWR基础版，需配置此参数。 组织在SWR中用于隔离镜像，每个组织可对应一个公司或部门，将其拥有的镜像集中在该组织下。在不同的组织下，可以有同名的镜像。同一IAM用户可属于不同的组织。同一个组织内的用户可以共享使用该组织内的所有镜像。 如果没有组织，可以单击"前往SWR创建"，创建一个组织。创建组织的详细操作请参见[组织管理](https://support.huaweicloud.com/usermanual-swr/swr_01_0014.html)。                     |
   | 新建镜像  | 镜像名称 | 自定义保存的镜像名称。名称只能由小写英文字母、数字及特殊字符_ / . -组成，且必须以小写英文字母或数字开头和结尾，不能连续出现2个以上下划线，长度不能超过128个字符。                                                                                                                                                                                                                                                                             |
   | 新建镜像  | 镜像版本 | 自定义镜像的版本。支持大小写字母、数字、下划线、中划线和半角句号，最长长度为64个字符。                                                                                                                                                                                                                                                                                                                       |
   | 新建镜像  | 描述   | 输入镜像的描述，不能包含字符\&\<\>"'/，输入长度范围为0到256个字符。                                                                                                                                                                                                                                                                                                                           |
      
   图1保存方式选择新建镜像   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002562052851.png "点击放大") 
3. 镜像会以快照的形式保存，保存过程约3\~10分钟，保存期间实例状态将处于"快照中"，请耐心等待。此时不可再操作实例。镜像保存成功后，实例状态变为"运行中"。
   ![](https://support.huaweicloud.com/devtool-modelarts/public_sys-resources/notice_3.0-zh-cn.png)
   - 快照中耗费的时间仍占用实例的总运行时长，如果在快照中时，实例因运行时间到期停止，将导致镜像保存失败。
   
   - 保存过程中连接可能会暂时中断，镜像保存操作完毕即可恢复。
   
   - 保存的镜像中不会包含持久化存储挂载目录(/home/ma-user/work)下的文件和数据。
     
4. 查看镜像详情。
   1. 在左侧导航栏，按需选择以下操作。
      - 新版控制台：选择"资产管理 \> 镜像"。
      
      - 旧版控制台：选择"资产管理 \> 镜像管理"
       
   
   2. 在"已注册镜像"页签，单击镜像的名称，进入镜像详情页，查看镜像详细信息。
    
 
#### 基于自定义镜像创建Notebook实例
从Notebook中保存的镜像可以在"镜像管理"或者"镜像"页面中查询到，可以用于创建新的Notebook实例，完全继承保存状态下的实例软件环境配置。
- 方式一：在Notebook实例创建页面，镜像类型选择"自定义镜像"，名称选择上述保存的镜像。具体操作，请参见[创建Notebook实例](https://support.huaweicloud.com/devtool-modelarts/devtool-modelarts_3495.html)。
  图2创建基于自定义镜像的Notebook实例   
  ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002629928080.png "点击放大")
  
  
- 方式二：在"镜像管理"或者"镜像"页面的"已注册镜像"页签，单击某个镜像的镜像详情，在镜像详情页的"版本列表"页签，单击"创建Notebook"，跳转到基于该自定义镜像创建Notebook的页面。
 
#### 镜像保存时，哪些目录的数据可以被保存
- 可以保存的目录：包括容器构建时静态添加到镜像中的文件和目录，可以保存在镜像环境里。 例如：安装的依赖包、"/home/ma-user"目录
  
- 不会被保存的目录：容器启动时动态连接到宿主机的挂载目录或数据卷，这些内容不会被保存在镜像中。可以通过**df -h** 命令查看挂载的动态目录，非"/"路径下的不会保存。
  例如：持久化存储的部分"home/ma-user/work"目录的内容不会保存在最终产生的容器镜像中、动态挂载在"/data"下的目录不会被保存。
  
 
#### 常见问题
- [镜像保存时报错"there are processes in 'D' status, please check process status using 'ps -aux' and kill all the 'D' status processes"如何解决？](https://support.huaweicloud.com/trouble-modelarts/modelarts_13_0264.html)
- [镜像保存时报错"container size %dG is greater than threshold %dG"如何解决？](https://support.huaweicloud.com/trouble-modelarts/modelarts_13_0265.html)
- [保存镜像时报错"too many layers in your image"如何解决？](https://support.huaweicloud.com/trouble-modelarts/modelarts_13_0266.html)
- [镜像保存时报错"The container size (xG) is greater than the threshold (25G)"如何解决？](https://support.huaweicloud.com/trouble-modelarts/modelarts_13_0268.html)
 
