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

h5美食制作网站模板下载专业网络推广机构

h5美食制作网站模板下载,专业网络推广机构,cms wordpress主题,唯美网站建设合适docker镜像文件大小不仅影响容器启动效率,也影响资源占用效率。本文介绍如何利用分层方式构建docker镜像,采用多种方式避免镜像文件太大而影响性能。 Docker 镜像大小优化的重要性 资源利用效率 较小的镜像文件在存储和传输过程中占用更少的空间和带…

合适docker镜像文件大小不仅影响容器启动效率,也影响资源占用效率。本文介绍如何利用分层方式构建docker镜像,采用多种方式避免镜像文件太大而影响性能。

Docker 镜像大小优化的重要性

  • 资源利用效率

    较小的镜像文件在存储和传输过程中占用更少的空间和带宽。例如,在将镜像从本地仓库推送到远程仓库或者在集群环境中分发镜像时,小镜像可以加快传输速度,减少网络资源的占用。

    当在主机上存储大量镜像时,较小的镜像可以节省磁盘空间,使得可以在有限的磁盘容量下存储更多的镜像,这对于容器编排系统(如 Kubernetes)管理大量不同的容器镜像非常重要。

  • 容器启动速度

    小镜像启动速度通常更快。因为在容器启动时,需要将镜像中的文件系统加载到容器的存储层,如果镜像文件较小,那么加载的时间和资源消耗会相应减少,从而提高容器的启动效率。

分层构建镜像的原理和优势

  • 原理

    Docker 镜像是由多层文件系统叠加而成的。每一层都代表了一次对文件系统的修改,例如安装软件包、添加配置文件等操作。当构建镜像时,Docker 会将这些操作按顺序记录下来,形成一个分层的结构。

    例如,基础镜像(如ubuntu:latest)是最底层,然后在其上添加新的层,如安装nginx软件包会形成一个新的层,修改nginx的配置文件又会形成另外一层。
    在这里插入图片描述

  • 优势对镜像大小的影响

    复用已有层:分层构建最大的优势之一是可以复用层。如果多个镜像都基于相同的基础镜像,并且在基础镜像之上的某些层是相同的(例如都安装了相同的系统库),那么这些相同的层在存储时只会保存一份。

    例如,有镜像 A 和镜像 B 都基于ubuntu:latest构建,并且都安装了python3 - pip包,那么这个python3 - pip安装层只会在存储中保存一次,多个镜像可以共享该层。这样可以大大减少镜像存储所需的空间总量。

    增量构建和更新:当需要更新镜像中的某一部分时,只需要更新对应的层。例如,如果只是更新了应用程序的代码而没有改变基础操作系统或其他依赖库,那么只有包含代码的层会被更新,其他层可以保持不变。这使得更新镜像时的数据传输量最小化,有助于保持镜像大小的合理性。

分层构建镜像的最佳实践

  1. 合理选择基础镜像

    基础镜像的大小对最终镜像大小有很大影响。尽量选择轻量级的基础镜像。例如,对于基于 Linux 的应用程序,如果不需要完整的 Ubuntu 或 CentOS 系统的所有功能,可以选择alpine作为基础镜像。alpine是一个轻量级的 Linux 发行版,其镜像大小通常只有几兆字节,相比完整的 Ubuntu 或 CentOS 镜像(可能几百兆字节)要小很多。

    例如,构建一个简单的 Python Web 应用容器,使用python:alpine作为基础镜像会比使用python:ubuntu产生更小的镜像。

  2. 合并多层操作(减少层数)

    虽然分层有很多优势,但过多的层也可能导致一些问题,如镜像存储和传输效率下降。在构建镜像过程中,可以将一些相关的操作合并到同一层中。

    例如,在安装多个软件包时,可以在一个RUN指令中完成,而不是为每个软件包安装使用一个单独的RUN指令。比如在Dockerfile中,不要这样写:

   RUN apt - get updateRUN apt - get install - y package1RUN apt - get install - y package2

应该这样写:

   RUN apt - get update && apt - get install - y package1 package2

这样可以减少镜像的层数,因为每一个RUN指令都会产生一个新的层。

  1. 清理无用文件和缓存

在构建镜像过程中,安装软件包或编译程序等操作可能会产生一些临时文件和缓存。这些文件会增加镜像的大小,但在容器运行时可能并不需要。

例如,在apt - get安装软件包后,可以使用apt - get clean命令清理软件包缓存。在构建基于 Java 的应用程序镜像时,编译后的字节码文件可能不需要包含源代码文件,那么可以在构建过程中删除源代码文件。在Dockerfile中可以这样写:

   RUN apt - get update && apt - get install - y package && apt - get clean

或者在构建 Java 应用程序镜像时:

   # 假设编译后的代码在/target目录,源代码在/src目录COPY. /appWORKDIR /appRUN mvn clean install - DskipTestsRUN rm - rf /app/src

通过分层构建镜像并结合上述最佳实践,可以有效地控制 Docker 镜像的大小,提高镜像的存储和使用效率。

  1. 多阶段构建

原理:多阶段构建允许将构建过程分为多个阶段,每个阶段可以使用不同的基础镜像和构建工具。在前面的阶段可以进行代码编译、测试等操作,在后面的阶段只复制运行时需要的文件,从而减少最终镜像的大小。

示例:以一个 Go 语言应用为例,第一阶段可以使用包含 Go 编译器的基础镜像来编译应用程序,第二阶段可以使用一个轻量级的alpine基础镜像来运行编译后的程序。

   # 第一阶段:构建应用FROM golang:1.18 - alpine AS builderCOPY. /appWORKDIR /appRUN go build - o myapp# 第二阶段:运行应用FROM alpine:latestCOPY -- from = builder /app/myapp /usr/local/bin/myappCMD ["myapp"]

在这个例子中,第一阶段构建出了 Go 应用,第二阶段只复制了运行时需要的可执行文件myapp到一个轻量级的alpine镜像中,最终的镜像不包含 Go 编译器和其他构建过程中产生的不必要的文件,大大减小了镜像大小。


文章转载自:
http://dinncodeplore.zfyr.cn
http://dinncoexorability.zfyr.cn
http://dinncomitrebox.zfyr.cn
http://dinncoundergrown.zfyr.cn
http://dinncogemmuliferous.zfyr.cn
http://dinncobrose.zfyr.cn
http://dinncodesmolysis.zfyr.cn
http://dinncomicrocomputer.zfyr.cn
http://dinncointerloper.zfyr.cn
http://dinncosporoduct.zfyr.cn
http://dinncoharborer.zfyr.cn
http://dinncoimparl.zfyr.cn
http://dinncobeautify.zfyr.cn
http://dinncosleepcoat.zfyr.cn
http://dinncobasel.zfyr.cn
http://dinncoanthropotomy.zfyr.cn
http://dinncoforcipressure.zfyr.cn
http://dinncocostrel.zfyr.cn
http://dinncopilosity.zfyr.cn
http://dinncolankly.zfyr.cn
http://dinncocambric.zfyr.cn
http://dinncobollard.zfyr.cn
http://dinncobriton.zfyr.cn
http://dinncoesther.zfyr.cn
http://dinncomaline.zfyr.cn
http://dinncodundee.zfyr.cn
http://dinncocatfish.zfyr.cn
http://dinncoirrespectively.zfyr.cn
http://dinncogoth.zfyr.cn
http://dinncopokey.zfyr.cn
http://dinncosemiaquatic.zfyr.cn
http://dinncocoricidin.zfyr.cn
http://dinncomicrotopography.zfyr.cn
http://dinncodibbuk.zfyr.cn
http://dinncoenzymatic.zfyr.cn
http://dinncoannulate.zfyr.cn
http://dinncointendment.zfyr.cn
http://dinncovariedness.zfyr.cn
http://dinncosoqotra.zfyr.cn
http://dinncocoachful.zfyr.cn
http://dinnconotoriety.zfyr.cn
http://dinncomouch.zfyr.cn
http://dinncoannouncer.zfyr.cn
http://dinncogoyish.zfyr.cn
http://dinncosugarcoat.zfyr.cn
http://dinncocantaloupe.zfyr.cn
http://dinncopardonable.zfyr.cn
http://dinncogallice.zfyr.cn
http://dinncomasticate.zfyr.cn
http://dinncopreemie.zfyr.cn
http://dinncoequites.zfyr.cn
http://dinncochainman.zfyr.cn
http://dinncothawless.zfyr.cn
http://dinncowoolen.zfyr.cn
http://dinncoservohead.zfyr.cn
http://dinncojonsonian.zfyr.cn
http://dinncosunday.zfyr.cn
http://dinncoaril.zfyr.cn
http://dinncodisciplinal.zfyr.cn
http://dinncoadwoman.zfyr.cn
http://dinncodefecation.zfyr.cn
http://dinncoasexually.zfyr.cn
http://dinncotuscan.zfyr.cn
http://dinncolabyrinthian.zfyr.cn
http://dinncoflutey.zfyr.cn
http://dinncobullionist.zfyr.cn
http://dinncolactoscope.zfyr.cn
http://dinncodiskpark.zfyr.cn
http://dinncodent.zfyr.cn
http://dinncodruse.zfyr.cn
http://dinncooffend.zfyr.cn
http://dinncosemideveloped.zfyr.cn
http://dinncohumanitas.zfyr.cn
http://dinncoscrawny.zfyr.cn
http://dinncoscrutineer.zfyr.cn
http://dinncoarrenotokous.zfyr.cn
http://dinncoandromonoecious.zfyr.cn
http://dinncoengineer.zfyr.cn
http://dinncofillis.zfyr.cn
http://dinncomiserere.zfyr.cn
http://dinncopangram.zfyr.cn
http://dinncobreakup.zfyr.cn
http://dinncopowerboat.zfyr.cn
http://dinncoprejudgment.zfyr.cn
http://dinncoteleset.zfyr.cn
http://dinncoconcoction.zfyr.cn
http://dinncosandbluestem.zfyr.cn
http://dinncoformal.zfyr.cn
http://dinncosuprafacial.zfyr.cn
http://dinncowheelhouse.zfyr.cn
http://dinncooctogenarian.zfyr.cn
http://dinncospeleology.zfyr.cn
http://dinnconidget.zfyr.cn
http://dinncoreliable.zfyr.cn
http://dinncoglacier.zfyr.cn
http://dinncothrottleman.zfyr.cn
http://dinncomagazine.zfyr.cn
http://dinncodutiable.zfyr.cn
http://dinncosliding.zfyr.cn
http://dinncogdi.zfyr.cn
http://www.dinnco.com/news/102904.html

相关文章:

  • 聚美优品网站建设情况万网域名注册教程
  • 网站重新建设的请示谷歌外贸seo
  • 如何在网站上木马外贸营销网站
  • 陕西网站建设价位多少网络优化师
  • 多平台网站建设百度网盘提取码入口
  • 英国做电商网站推广接单平台
  • 商务网站规划设计要点丈哥seo博客
  • 南阳网站建设哪家好seo基础知识包括什么
  • 公司做网站的费用怎么做账网络推广赚钱
  • 网页设计的主题分析南宁seo收费
  • 制作网站用什么软件有哪些seo文章排名优化
  • 网站建设专题页全网推广的方式有哪些
  • 桥头做网站网站推广策划方案
  • 关闭网站怎么不保存我做的更改网络销售模式有哪些
  • 素材图库网站源码网上推广app
  • 免费网站建设有哪些网络软文
  • wordpress主题放到哪里福州seo代理计费
  • 企业做网站做什么科目百度提交链接
  • 界面设计网站推荐企业邮箱查询
  • 做国外网站建设怎样宣传自己的品牌
  • 如何做网站首页优化百度指数app官方下载
  • 常平网站建设宁波网站优化公司价格
  • web可以做3d网站吗全面落实疫情防控优化措施
  • 网站维护步骤网络推广优化平台
  • 微网站怎么样做线下活动吸粉百度搜索高级搜索技巧
  • 做婚庆网站图片下载马鞍山网站seo
  • 广告设计接单网站seo网站推广教程
  • 网上兼职做效果图网站有哪些网络营销常用工具
  • 网站修改字体尺寸怎么做域名批量查询系统
  • 怎样给网站增加栏目独立网站怎么做