docker映像大小如何影响运行时特性?

docker映像大小如何影响运行时特性?,docker,dockerfile,Docker,Dockerfile,我构建了一个docker容器的图像。大约是600MB。让我们将其称为图像“A”。然后我应用不同的清洗(比如“apt-clean”)和缩小步骤(比如“rm-man”),我得到了一个300MB大小的图像。让我们将其称为图像“B”。因此,映像“a”与映像“B”相同,但包含许多在执行/运行时从未使用过的文件 注意:我知道,如果图像基于类似alpine的基础图像的顶部,则可以缩小图像的大小,但假设由于各种限制,我不能这样做 我明白: “A”映像需要比“B”映像更多的磁盘空间才能将其保留在本地注册表中 “

我构建了一个docker容器的图像。大约是600MB。让我们将其称为图像“A”。然后我应用不同的清洗(比如“apt-clean”)和缩小步骤(比如“rm-man”),我得到了一个300MB大小的图像。让我们将其称为图像“B”。因此,映像“a”与映像“B”相同,但包含许多在执行/运行时从未使用过的文件

注意:我知道,如果图像基于类似alpine的基础图像的顶部,则可以缩小图像的大小,但假设由于各种限制,我不能这样做

我明白:

  • “A”映像需要比“B”映像更多的磁盘空间才能将其保留在本地注册表中
  • “A”映像比“B”映像从远程回购中拉/推所需的时间更长
我想知道与“B”图像相比,“A”图像是否对性能特征有任何其他影响,尤其是:

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

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

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

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