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

虾皮跨境电商网站百度小说风云榜排名完结

虾皮跨境电商网站,百度小说风云榜排名完结,wordpress文章出问题,易游网络验证代理平台Docker镜像用作Docker执行程序中的主映像。它们是容器的蓝图#xff0c;提供了有关如何生成容器的说明。在本文中#xff0c;我将介绍一些经常被忽视的概念#xff0c;这些概念将有助于优化Docker镜像开发和构建过程。 让我们从Docker构建过程的简短描述开始。这是通过使用…Docker镜像用作Docker执行程序中的主映像。它们是容器的蓝图提供了有关如何生成容器的说明。在本文中我将介绍一些经常被忽视的概念这些概念将有助于优化Docker镜像开发和构建过程。 让我们从Docker构建过程的简短描述开始。这是通过使用Docker CLI工具运行docker build命令触发的过程。 docker build命令根据Dockerfile的文件中指定的指令构建Docker镜像。Dockerfile是一个文本文档其中包含用户在命令行上调用以组装映像的所有有序命令。 Docker镜像由只读层组成。每层代表一个Dockerfile指令。这些层是堆叠在一起的每个层都是上一层的变化的增量。通常可以认为这些层是缓存的一种形式。仅对更改的层进行更新而不是对每个更改进行更新。 下面的示例描述了Dockerfile的内容 FROM registry.docker.com/baseimg/centos7-jdk8:latestMAINTAINER Luga luga_sxoutofmemory.cn RUN mkdir -p /tools/apps/{microserice} RUN mkdir -p /tools/apps/{microserice}/cacheADD {microserice}.jar /tools/apps/{microserice}/{microserice}.jarEXPOSE 9999ENV TZ Asia/ShanghaiENTRYPOINT [java,-Djava.security.egdfile:/dev/./urandom -Djava.awt.headlesstrue -DenvDEV -Dapollo.clusterDEFAULT -Dspring.profiles.activeprm -Dfile.encodingutf-8,-jar,/tools/apps/{microserice}/{microserice}.jar]该文件中的每条指令代表Docker镜像中的单独一层。以下是每条指令的简要说明 FROM从JDK创建一个层Docker镜像(此处的镜像非Docker Hub上面直接拉取而是基于源码自定义制作)COPY从Docker客户端的当前目录添加文件RUN使用make构建您的应用程序CMD指定在容器中运行什么命令基于上述命令行在构建过程中执行上述命令时将在Docker镜像中创建层一个完整的Docker镜像将由此诞生。然而在实际的项目活动中我们需要从性能、稳定性、安全性等等方面对我们所创建的Docker镜像进行不断的调整、优化以满足业务场景需求。针对Docker的构建过程我想分享一些优化建议以帮助有效地构建镜像临时容器 Dockerfile定义的镜像会生成短暂的容器。在这种情况下临时容器是指可以停放并销毁然后重建的容器并使用绝对最小的设置和配置替换为新生成的容器。临时容器可以认为是一次性的。每个实例都是新的并且与以前的容器实例无关。在开发Docker镜像时我们应该利用尽可能多的临时模式。减少不必要的软件包 尽量避免安装不必要的文件和软件包。Docker镜像应保持精简。这有助于提高可移植性缩短构建时间降低复杂性并减小文件大小。例如在大多数情况下不需要在容器上安装文本编辑器。不要安装任何非必需的应用程序或服务。 实现.dockerignore文件 .dockerignore文件排除与在其中声明的模式匹配的文件和目录。这有助于避免将不必要的大文件或敏感文件和目录发送到守护程序并避免将它们添加到公共镜像。 要在不重构源存储库的情况下排除与构建无关的文件请使用.dockerignore文件。该文件支持类似于.gitignore文件的排除模式。 排序多行参数 尽可能通过字母数字排序多行参数来简化以后的更改。这有助于避免软件包重复并使列表更易于更新。 解耦应用 依赖于其他应用程序的应用程序被视为“已耦合”。在某些情况下它们托管在同一主机或计算节点上。这在非容器部署中很常见但对于微服务每个应用程序应存在于其自己的单独容器中。将应用程序解耦到多个容器中可以更轻松地水平缩放和重用容器。例如一个解耦的Web应用程序堆栈可能包含三个单独的容器每个容器都有自己的唯一镜像一个用于管理Web应用程序一个用于管理数据库的容器以及一个用于内存中缓存的容器。将每个容器限制为一个进程是一个很好的经验法则。根据业务规则使容器保持清洁和模块化。然后如果容器相互依赖则可以使用Docker容器网络来确保这些容器可以通信。 最小化层数 仅使用RUN、COPY和ADD等指令即可创建图层。其他指令仅仅是创建临时的中间镜像并且最终不会增加构建的大小。在可能的情况下我们可以在构建过程中包含其他工具或者调试信息而无需增加最终镜像的大小。 利用构建缓存 在构建镜像时Docker会逐步执行Dockerfile中的指令并按顺序执行每个指令。在每条指令中Docker都会在其缓存中搜索要使用的现有镜像而不是创建新的重复镜像。 Docker镜像通常在构建的过程中遵循以下基本规则 1、从已在缓存中的父镜像开始将下一条指令与从该基本镜像派生的所有子镜像进行比较以查看是否其中一个是使用完全相同的指令构建的。如果不是则高速缓存无效。在大多数情况下仅将Dockerfile中的指令与子镜像之一进行比较就足够。2、对于ADD和COPY指令将检查镜像中文件的内容并为每个文件计算一个校验标识。在这些校验标识中通常不考虑文件的最后修改时间和最后访问时间。在缓存查找期间将校验标识与现有镜像中的进行比较。如果文件中的任何内容(例如内容和元数据)发生了更改则缓存将无效。3、除了ADD和COPY命令外缓存检查不会查看容器中的文件来确定缓存是否匹配。例如在处理RUN apt-get -y update命令时不会检查容器中更新的文件以确定是否存在缓存命中。在这种情况下命令字符串用于查找匹配项。4、缓存无效后所有后续Dockerfile命令都会生成新镜像并且不使用缓存。在CI管道中优化Docker镜像构建 前面几节中提到的所有优化概念对于在CI管道中实施都是有效的。特别是缓存。如果Dockerfile发生了变化那么利用缓存仍然是减少构建时间的最佳方法。作为CI管道的一部分这是如何工作的当使用Docker执行器作为构建作业的运行时可以利用称为Docker层缓存(DLC)的功能来加快构建速度。 当构建Docker镜像是CI流程的常规部分时DLC是一项很不错的功能。DLC将保存在作业中创建的镜像层。DLC会缓存在工作期间构建的任何Docker镜像的各个层然后在后续的CircleCI运行中重用未更改的镜像层而不是每次都重新构建整个镜像。 Dockerfile提交的次数越少镜像构建步骤将运行得越快。DLC可以与机器执行程序和远程Docker环境(setup_remote_docker)一起使用。重要的是要注意DLC仅在使用docker builddocker compose或类似的Docker命令创建自己的Docker镜像时有用它不会减少所有构建启动初始环境所花费的时间。
http://wiki.neutronadmin.com/news/254436/

相关文章:

  • wap网站 劣势网站总是跳转dede58
  • 建设信用卡银行积分兑换商城网站建设部执业资格网站
  • h5网站有哪些可以查授权的网站怎么做
  • 做网站的图片=gif私密浏览器有哪些
  • 怎样做网站ppt深圳网络做网站
  • 做商品网站宿州市网站建设有哪些公司
  • 东明菏泽网站建设网站免费下载安装
  • 番禺网站建设三杰科技安徽网络seo
  • 郑州北环网站建设培训vi设计公司
  • 做的好的企业网站广州公司网页制作
  • 深圳网站建设叶林wordpress魔方
  • 免费下载建筑图纸的网站EDI许可证需要的网站怎么做
  • 强的网站建设公google play store
  • 购物网站修改注册信息模块的分析微信做代理的网站
  • 电子商务网站建设小结怎么做网站建设
  • app优化网站视频网站 建设
  • 上海网站设计开发五站合一自建网站
  • 北京大兴做网站公司网页制作怎么做链接
  • 网站开发工程师php岗位职责一般网站开发的硬件要求
  • 郑州网站建设白杨网络网站模板下载网站
  • 网站开发及后期维护wordpress商城支付主题
  • 服装网站建设策划书论文php制作投票网站
  • 网站建设广告图片海珠网站建设报价
  • 合格的网站设计师需要会什么软件如何做好网站seo优化
  • png素材网站企业网站源码html
  • 重庆网站建设的好处企业品牌维护
  • 阿里云备案网站建设方案书怎么做淘宝客网站备案
  • 进网站后台显示空白pageadmin的应用
  • 全国网站备案wordpress 主题制作视频
  • 品牌营销型网站作用网站开发的内容和特点