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

网站设计到底做多宽长沙seo优化推荐

网站设计到底做多宽,长沙seo优化推荐,恩施网站建设,做a小视频网站工作中常常用到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/317721.html

相关文章:

  • 烂网站做竞价行吗营销网站大全
  • 演示动画制作免费网站国内建站平台有哪些
  • 做农产品的网站关键词seo价格
  • 网站界面设计教程网站怎么打开
  • jsp servlet做博客网站怎么建立自己的网页
  • 廊坊手机网站制作百度链接收录
  • 二级菜单网站如何做伪静态企业网站开发公司
  • 太原自动seoseo百度首页排名业务
  • 给网站建设提意见网络推广项目
  • 为每个中小学建设网站可以免费打开网站的软件
  • 重庆头条新闻山东seo优化
  • 腾讯云域名如何建设网站谷歌在线搜索
  • 券优惠网站如何做宁波seo网络推广报价
  • 建网站方法网站自动提交收录
  • 国际婚恋网站做翻译合法吗推广点击器
  • 常州网站制作包括哪些kol合作推广
  • 重庆网站模板平台建设技能培训网
  • wordpress平台石家庄seo排名公司
  • 制作网站 公司制作网站推广
  • 免费做效果图的网站百度 竞价排名
  • 平台网站怎么做的重庆网站seo公司
  • 淄博圻谷网站建设制作中国网站建设公司前十名
  • 孝感市网站建设公司英雄联盟最新赛事
  • 网站建设 秦皇岛公司站长统计在线观看
  • 用百度地图 做gis网站高端企业网站模板
  • 毕业设计可以做哪些网站seo相关ppt
  • 上海网站公安局备案自媒体账号申请
  • 武汉企业做网站找哪家好西安seo教程
  • 郑州做网站推广的公司哪家好seo网站关键词优化机构
  • 中山网站制作专业互联网营销师培训大纲