文档首页/ AI开发平台ModelArts/ 镜像管理(即将下线)/ FAQ/ 本地/ECS构建镜像,如何减小目的镜像的大小?
更新时间:2024-08-08 GMT+08:00

本地/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