2016-12-13 46 views
1

我已经构建了码头集装箱的图像。大约600MB。我们将其称为图像'A'。然后,我使用不同的清洁方式(如“清洁”)和尺寸缩小步骤(如'男士'),我获得了300MB大小的图像。我们将其称为图像'B'。结果,图像'A'与图像'B'相同,但是保存了很多在执行/运行期间从不使用的文件。docker镜像大小如何影响运行时特性?

注:我知道如果图像基于阿尔卑斯样的基本图像的顶部,则图像可以缩小,但是假设由于各种约束我无法做到这一点。

我的理解是:

  • “A”的图像要求比“B”形象更多的磁盘空间,以保持其在本地注册表
  • “A”的图像需要更多的时间来拉从/推远程回购比“B”形象

我想知道,如果“A”形象已经得到了与“B”图像进行比较,对性能特性的任何其他影响,特别是:

  • 'A'图片是否需要更多时间才能启动(不包括下拉时间)?
  • 'A'图像比'B'图像使用更多的RAM(假设工作负载相同)?
  • 'A'图像比'B'图像使用更多CPU(假设工作负载相同)?
  • 'A'图像是否每个正在运行的容器使用更多磁盘空间(假设多个容器从同一图像运行)?
  • 'A'图像比'B'图像可能不需要更多的东西吗?

一般来说,我怀疑所有问题的答案都是否定的,但也许我错了。

+1

您怀疑是否正确。 “容器”本身是非常轻量级的读/写层,其中100个从同一映像运行,将重新使用所有相同的磁盘资源。 – johnharris85

回答

1

图片的大小只是目录的大小。所以它永远不会占用更多的CPU或RAM(如果你没有删除某些内容,那么它将在启动时从'A'加载到内存中) 关于拉取过程的几句话:第一次将图像从注册表中取出,将在本地缓存。一旦您拉出基本图像('A'),只会为图像'B'拉出差异。

相关问题