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

wordpress多站点 域名wordpress 打开慢

wordpress多站点 域名,wordpress 打开慢,江西建设职业技术学院最新官方网站,wordpress 值班功能工作中常常用到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/825057.html

相关文章:

  • 东莞营销型网站建设找火速网站建设实习周记
  • 福建省住房和城乡建设局网站厦门网站建设哪好
  • 什么是网站域名?ip域名查询网
  • 网站推广可采用的方法有哪些网站后台发了文章看不到
  • 河南住房和城乡建设厅职称网站怎么搜索关键词
  • 哈尔滨专业优化网站个人wordpress图片处理类
  • 网站建设 300元拉新app推广
  • 安平网站建设培训临沂企业宣传片制作公司
  • seo做论坛和企业网站差别网页版qq农场登录入口
  • 现在的报税网站怎么做更正申报一键免费创建论坛网站
  • 公司网站系统建设策划书建设什么网站可以上传视频
  • 做暧暧网站免费小型企业网站开发公司
  • python 网站开发必会现在做个企业网站一般多少钱
  • 彩票网站建设要多少钱做电池网站的引导页
  • 厦门网站建设westcyjsp电商网站开发流程图
  • cms网站搭建好了再怎么做云南人社
  • 知名网站开发企业android网站开发视频
  • 网站的电子手册用什么做的网站使用什么数据库
  • qq网页版登录官网登录入口网站大型电商网站开发
  • wordpress 网站搬家建设公司上市企业有多少?
  • 高端网站设计元素图片丢了么网站
  • 用织梦做网站不备案的网站的稳定吗
  • 百度网站降级的原因wordpress换域名代码
  • 兰州城建设计院网站设计网站页面特效怎么做
  • 网站备案怎么这么麻烦丰收路网站建设
  • 网站如何报备国外网络推广
  • 网站只做五周珠海网站外包
  • 深圳网站建设招聘wordpress会员管理插件
  • 广州seo技术优化网站seo网站的优势和劣势
  • 肇庆网站制作策划室内设计找哪个公司好