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

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


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

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

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

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

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

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

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

tutorial2_docker_tricks/├── build_docker_image.sh# builds the docker image├── run_container.sh# instantiates a container from the image├── install_anaconda.dockerfile# Dockerfile for creating our target docker image├── .dockerignore# used to ignore contents of the installer/ folder from the docker context├── installer# folder with all our large files required for creating the docker image│  └── Anaconda3-2019.10-Linux-x86_64.sh# from https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh└── workdir# example folder used as a volume in

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值