当前位置: 首页 > wzjs >正文

大一学生做的网站seo网站优化培训厂家报价

大一学生做的网站,seo网站优化培训厂家报价,凡科自助建站自己做网站,特别好的企业网站程序工作中常常用到docker,现在有这样一个场景:已经有一个打好的docker镜像A,主要是包含系统文件(1-3G)、pyhton env(9-10G)文件、模型权重文件modelA(65G)和python代码文件。同时重新安装pyhton env耗时很久(安装torch/cuda/sglang)等等。现在要…

       工作中常常用到docker,现在有这样一个场景:已经有一个打好的docker镜像A,主要是包含系统文件(1-3G)、pyhton env(9-10G)文件、模型权重文件modelA(65G)和python代码文件。同时重新安装pyhton env耗时很久(安装torch/cuda/sglang)等等。现在要把modelA切换为modelB(也是65G),要快速的构建好docker image B,同时又要保证docker image B的体积尽可能的小。那么这个dockerfile该怎么写呢?

        为了构建的时间最小,因此python env 不要再次安装(这个一般需要2-3个小时,也假设之前构建docker镜像A的时候 pip 没有缓存),那么就得依赖docker镜像A;为了最终构建镜像体积小,所以要不镜像A中的模型权重文件modelA给删除掉。按照这个思路貌似就很容易完成这个任务。

FROM imageA
RUN rm -rf /app/*.py
RUN rm -rf /app/modelACOPY models/modelB modelB 
ENV PATH="/app:$PATH"
COPY config.toml .
COPY *.py .
RUN python3 -m pip install pytomlpp -i https://pypi.tuna.tsinghua.edu.cn/simple
CMD ["python", "llm_sglang_server_ws.py"]

最后运行docker build -t  imageB -f ./Dockerfile . 构建新的镜像,最后发现imageB的体积比imageA要大65G,貌似RUN rm -rf /app/modelA 并没有生效一样。这是因为docker镜像的存储是按照layer来进行的,dockerfile中每一条命令FROM、COPY、RUN、CMD等都会产生一个layer,每一层layer都是基于之前的所有layer来进行构建的。docker镜像的大小就是所有layer的大小之和。具体都上面的dockerfile中,RUN rm -rf /app/modelA 这个命令指示标记删除modelA在最后的镜像中不可见,但是modelA仍然存在某些layer中

FROM imageA                                                                                                          75G
RUN rm -rf /app/*.py                                                                                                 0B
RUN rm -rf /app/modelA                                                                                           0B

COPY models/modelB modelB                                                                                 65G
ENV PATH="/app:$PATH"                                                                                        0B
COPY config.toml .                                                                                                   1kB
COPY *.py .                                                                                                               80kB
RUN python3 -m pip install pytomlpp -i https://pypi.tuna.tsinghua.edu.cn/simple     13MB
CMD ["python", "llm_sglang_server_ws.py"]                                                              0B

因此总计 65G+75G = 140G

因此我们就需要采用多阶段来构建,多阶段就是使用多个FROM命令,有个特点就是镜像只会保留最后一个FROM后面的非FROM命令的层。先把dockerfile多阶段构建的给出来

FROM imageA as builder
RUN rm -rf /app/*.py
RUN rm -rf /app/modelAFROM scratch
WORKDIR /app
COPY --from=builder / /
COPY models/modelB modelBARG docker_dir="docker"
ENV PATH="/app:$PATH"
COPY config.toml .
COPY *.py .
RUN python3 -m pip install pytomlpp -i https://pypi.tuna.tsinghua.edu.cn/simple
CMD ["python", "llm_sglang_server_ws.py"]

分析一下这个dockerfile以及构建后的镜像

首先FROM scratch引入了一个空镜像,不占空间;COPY --from=builder / / 从第一阶段的镜像中把/路径下的文件全部复制过来了(包含各种系统文件、python env等),docker history Image 看看构建后的镜像:

镜像总计9层,每层的大小也具体显示出来了,符合我们上述的分析——只有最后一个FROM后的命令对应的layer保留下来了。

以上内容仅仅是对当前场景怎么快速构建一个体积相对较小同时有满足需求的镜像,给出了演示和分析。关于docker镜像的压缩和精简,在构建的时候还有其他的一些技巧,合并多个同类命令为一个命令、清除缓存、使用轻量化的基础镜像等,这里我们就不做过多的学习了。

http://www.dtcms.com/wzjs/318354.html

相关文章:

  • 商标转让要多久5g网络优化培训
  • 东莞市网上注册公司流程优化设计三年级上册语文答案
  • 如何建设网站教育网络推广网址
  • 宁波市建设银行网站沈阳seo排名外包
  • 站内推广的方式有哪些百度搜索网页版
  • 给网站做优化刷活跃要收费吗推广普通话手抄报文字
  • 动态网站开发背景网址导航怎样推广
  • 如何做好企业推广长沙官网seo技术
  • 深圳微商城网站设计公司安徽做网站公司哪家好
  • 旅游网站开发文档怎么写站长工具综合查询系统
  • 帝国网站系统做专题搜索引擎优化的方法有哪些?
  • 企业门户网站开发要多少钱网站怎么做谷歌推广
  • 徐州网站建设技术外包游戏代理怎么找渠道
  • 企业做网站分哪几种站长工具在线查询
  • php做的网站收录专业搜索引擎seo服务商
  • 做包装的网站网页生成器
  • 外贸网站怎样注册杭州排名优化公司
  • 站酷做网站营销策划案
  • 石家庄网站开发公司电话微商已经被国家定为传销了
  • 龙川县建设网站岳阳seo快速排名
  • 黄页网站怎么查目前引流最好的平台
  • 网站开发工具中的三剑客seo搜索优化费用
  • 如何高效率的建设网站如何把品牌推广出去
  • 淘宝店网站怎么做网络营销咨询公司
  • p2p网站做牛关键词爱站网
  • 网站设置超链接如何做好网络营销推广
  • 甘肃手机版建站系统价格广州品牌seo推广
  • 美乐乐 网站建设北京网站制作
  • 网站建设及 维护合同代写
  • 威海网站制作服务百度ocpc如何优化