如何更好地优化容器的创建这些技巧你务必收

冬季白癜风 http://m.39.net/baidianfeng/a_4394577.html

导语

在你获得正确的容器配置时需要进行几次迭代?你每次迭代需要多长时间?好吧,如果回答“太多次且时间太长”,那么我的经历与你很相似。从表面上看,创建配置文件似乎很简单:在配置文件中实现与手动安装系统时要执行的步骤相同。不幸的是,我发现这种方法通常无法正常工作,并且一些“技巧”对于此类DevOps练习非常有用。

正文

在本文中,我将分享一些新发现的技术。这些技术可以帮助你最大程度地减少迭代次数和迭代时间。另外,我将概述一些标准做法以外的调优做法。

节省时间在容器映像构建迭代上

如果Dockerfile涉及下载并安装5GB的文件,则即使具有良好的网络速度,每次Docker映像构建迭代都可能会花费大量时间。忘记包含要安装的项目可能意味着在此之后重建所有层。

解决这一难题的一种方法是使用本地HTTP服务器,以避免在Docker映像构建迭代期间多次从互联网下载大文件。为了举例说明,假设您需要在Ubuntu18.04下使用Anaconda3创建一个容器映像。Anaconda3安装程序的文件大小约为0.5GB,因此在此示例中称为“大”文件。

请注意,如果不想使用COPY指令,因为它会创建一个新层。使用大型安装程序后,还应删除它,以最小化容器映像的大小。您可以使用多阶段构建,但是我发现以下方法足够有效。

其基本思想是使用基于Python的HTTP服务器在本地,以服务大文件(S),并有Dockerfilewget的,从这个本地服务器的大文件(S)。让我们探索如何有效设置它的细节。

在此示例存储库中,文件夹tutorial2_docker_tricks/的必要内容是:

tutorial2_docker_tricks/├──build_docker_image.sh#buildsthedockerimage├──run_container.sh#instantiatesacontainerfromtheimage├──install_anaconda.dockerfile#Dockerfileforcreatingourtargetdockerimage├──.dockerignore#usedtoignorecontentsoftheinstaller/folderfromthedockercontext├──installer#folderwithallourlargefilesrequiredforcreatingthedockerimage│└──Anaconda3-.10-Linux-x86_64.sh#from


转载请注明:http://www.guyang114.com/bdyh/yxgj/15938.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了