首页 > 其他分享 >构建镜像优化经验

构建镜像优化经验

时间:2024-04-19 13:55:39浏览次数:18  
标签:Layer RUN pip3 python py 构建 镜像 优化

构建镜像已经简单到docker build 或 buildkit build了,但优化镜像成了下一个问题。

Layer层数据是叠加的

容器镜像由多个Layer层数据组装而成,每一条命令结果都会以一个层存储并逐渐叠加。
Python镜像安装诸多包为例。

# py-pip1.dockerfile
FROM python
# 安装每个包都以RUN命令独立实现
RUN pip3 install flask -i https://mirrors.aliyun.com/pypi/simple
....
RUN pip3 cache purge
# py-pip2.dockerfile
FROM python
RUN <<EOF
# 安装每个包以EOF合并语法实现,即一条RUN
pip3 install flask -i https://mirrors.aliyun.com/pypi/simple
...
pip3 cache purge
EOF
# py-pip3.dockerfile
FROM python
COPY <<EOF /opt/requirement.txt
# 以EOF语法,由COPY命令将依赖包名写入到requirement.txt
flask
...
EOF
RUN <<EOF
pip3 install -r /opt/requirement.txt -i https://mirrors.aliyun.com/pypi/simple
pip3 cache purge
EOF

三个命令构建镜像结果如下:
img

可以见到第一个镜像体积比后者大。
这是因为容器镜像Layer层数据是叠加的,上层会遮蔽下层的数据,但不会减少数据。

建议:执行命令若有产生缓存的,则可以采取删除缓存的情况释放空间。

标签:Layer,RUN,pip3,python,py,构建,镜像,优化
From: https://www.cnblogs.com/yulinor/p/18145752

相关文章

  • 在副本集和分片集群上构建 MongoDB 索引
    1.限制留有足够的内存来容纳工作集是非常重要的。不一定所有索引都要放在内存中。在v4.0之前,索引键的限制应小于1024字节。从v4.2版开始,这一限制被取消。索引名也是如此,在使用fcv4.0及以下版本的数据库中,索引名的最大长度为127字节。在dbv4.2和fcv4.2中,这一......
  • RAG 2.0架构详解:构建端到端检索增强生成系统
    关于检索增强生成(RAG)的文章已经有很多了,如果我们能创建出可训练的检索器,或者说整个RAG可以像微调大型语言模型(LLM)那样定制化的话,那肯定能够获得更好的结果。但是当前RAG的问题在于各个子模块之间并没有完全协调,就像一个缝合怪一样,虽然能够工作但各部分并不和谐,所以我们这里介绍RAG......
  • 一次性初始化/重新挂载/便捷类型/优化技巧
    React中一次性初始化在React中进行一次性初始化的两种推荐方案如下:方案1使用useState进行初始化:javascriptCopycodeconst[resource]=React.useState(()=>newResource());这种方法通过状态的惰性初始化来创建资源,代码直观且易于理解。方案2使用useRef保持实例不变......
  • 如何用Python构建一个生产级别的电影推荐系统 - 机器学习手册
    构建项目是彻底学习概念并发展必要技能的最有效方式之一。项目使您沉浸在现实世界的问题解决中,巩固您的知识,并培养批判性思维、适应能力和项目管理专业知识。本指南将带您逐步构建一个根据用户喜好量身定制的电影推荐系统。我们将利用一个庞大的包含10,000部电影的数据集作为......
  • NL2SQL技术方案系列(1):NL2API、NL2SQL技术路径选择;LLM选型与Prompt工程技巧,揭秘项目落
    NL2SQL技术方案系列(1):NL2API、NL2SQL技术路径选择;LLM选型与Prompt工程技巧,揭秘项目落地优化之道NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(SpidervsBIRD)全面对比优劣分析[Text2SQL、Text2DSL]NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法......
  • Teamcenter 查询构建器《通过表单属性找Item》
    背景配置查询构建器Step1:确定查找的类型Step2:referenced_by查找ItemRevisionStep3:通过关系IMAN_master_form_rev查找“版本表单”Step4:查找存储的实际类型(打印对象查看)Step5:设置条件......
  • el-transffer大数据量页面卡顿优化
    Elementtransfer组件数据量大卡顿优化&&添加虚拟滚动,几万以内的数据量不会卡顿,用法和element的el-transfer完全一样安装npminstallel-virtual-transfer--save使用importElTransferVirtualfrom'element-transfer-virtual';1、组件内注册一下comp......
  • EF有关include的优化
     1、不使用include。共执行SQL 3276800000次,数据库连接接近3276800000次2、使用include,执行一次,CPU执行3276800000次。或者胜出。负载代码//嵌套关联的优化使用varusersWithDetails=context.Users.Include(u=>u.Orders)......
  • 小程序生态是更灵活构建超级App的方式
    互联网从1.0发展至今,已经经历了几十年的进步和变迁,催生出很多垂直领域的超级App。以下就是几个典型的超级App:1、电子商务Shopee(新加坡):东南亚最大的电子商务平台,拥有超过3.6亿活跃用户,覆盖7个国家和地区。Shopee提供广泛的商品品类,包括服饰、电子产品、家居用品等,并提供多种......
  • webpack打包优化方案
    以下是一些常见的webpack打包优化方案:1.使用生产模式(productionmode)://webpack.config.jsmodule.exports={mode:'production',//...其他配置};2.代码分割(CodeSplitting)://webpack.config.jsmodule.exports={//...optimization:{splitChunks......