
# 如何减小本地或ECS构建镜像的目的镜像的大小？
减小目的镜像大小的最直接的办法就是选择尽可能小且符合自己诉求的镜像，比如您需要制作一个PyTorch2.1+Cuda12.2的镜像，官方如果没有提供对应的PyTorch或者Cuda版本的镜像，优选一个没有PyTorch环境或没有安装Cuda的镜像，而不是选择一个PyTorch引擎和Cuda都不满足的镜像，如MindSpore+Cuda11.X，这样基础镜像就会很大，同样的操作最终目的镜像就很大。
此外下面举出几种常见的减少镜像大小的方式。
- 减少目的镜像层数 举例：假设需要安装两个pip包six，numpy，将安装放到同一层，而不是放到不同层：
  正确方式：
  ```
  RUN pip install six &&\
      pip install numpy
  ```
  不宜方式：
  ```
  RUN pip install six
  RUN pip install numpy
  ```
  镜像层数越多，镜像越大。
  
- 安装和卸载放在同一层，不要跨层删除。 举例：假设从官网下载了一个SCC包，安装后卸载：
  正确方式：
  ```
  RUN mkdir -p /tmp/scc && \
      cd /tmp/scc && \
      wget http://100.95.151.167:6868/aarch64/euler/dls-release/euleros-arm/compiled-software/seccomponent-1.1.0-release.aarch64.rpm && \
      rpm -ivh /tmp/scc/seccomponent-1.1.0-release.aarch64.rpm --force --nodeps && \
      rm -rf /tmp/scc
  ```
  不宜方式：
  ```
  RUN mkdir -p /tmp/scc && \
      cd /tmp/scc && \
      wget http://100.95.151.167:6868/aarch64/euler/dls-release/euleros-arm/compiled-software/seccomponent-1.1.0-release.aarch64.rpm && \
      rpm -ivh /tmp/scc/seccomponent-1.1.0-release.aarch64.rpm --force --nodeps
  RUN rm -rf /tmp/scc
  ```
  
 
