
# Notebook的自定义镜像制作方法
在使用ModelArts进行机器学习开发时，开发者经常需要根据项目需求对开发环境进行定制化改造，例如安装、升级或卸载特定的软件包。然而，由于Notebook实例运行时缺乏root权限，导致无法在预置的开发环境镜像中直接安装需要root权限的软件，这给开发工作带来了不便。如何解决这一权限限制，以实现开发环境的灵活定制？用户可以利用ModelArts提供的镜像或第三方镜像，通过编写Dockerfile来构建完全符合自身需求的开发环境镜像，实现开发环境的高效定制。
![](https://support.huaweicloud.com/docker-modelarts/public_sys-resources/note_3.0-zh-cn.png)
**基础镜像：**镜像制作的一个基本概念，您可以在基础镜像上构建业务镜像。基础镜像可以是ModelArts预置镜像或统一镜像。
#### Notebook自定义镜像制作流程
**场景一：** 通过ModelArts预置镜像或自定义镜像创建Notebook实例，在Notebook实例上安装对应的自定义软件和依赖，进而将运行的实例环境以容器镜像的方式保存下来。具体案例参考[在Notebook中通过镜像保存功能制作自定义镜像](https://support.huaweicloud.com/docker-modelarts/docker-modelarts_0008.html)。
**场景二：** 基于Notebook预置镜像或第三方镜像，在服务器上配置Docker环境，编写Dockerfile后构建镜像并注册，具体案例参考[在ECS上构建自定义镜像并在Notebook中使用](https://support.huaweicloud.com/docker-modelarts/docker-modelarts_0011-0.html)。
#### Notebook自定义镜像规范
制作自定义镜像时，Base镜像需满足如下规范：
- 基于昇腾、Dockerhub官网等官方开源的镜像制作，开源镜像需要满足如下操作系统约束：  x86：Ubuntu 22.04、Ubuntu20.04
  ARM：Euler2.10.x、Euler2.9.x、Euler2.8.x、HCE3.0、HCE2.0
  
- Notebook场景：
  - 需安装ipykernel依赖包，否则无法在Notebook中使用JupyterLab功能。
  
  - 如果镜像内存在Jupyter静态文件，可能导致Notebook页面打开异常，请执行jupyter --path命令查看相关目录，并清理列出的目录中的静态文件。
   
- 训练调试模式场景：需保证curl命令正常。
- 不满足以上镜像规范，所制作的镜像使用可能会出现故障，请用户检查镜像规范，并参考[Notebook自定义镜像故障基础排查](https://support.huaweicloud.com/trouble-modelarts/docker-modelarts_6024.html)自行排查，如未解决请联系华为技术工程师协助解决。
 
