gpt4 book ai didi

image - Docker镜像层次结构会增加层大小吗?

转载 作者:行者123 更新时间:2023-12-02 19:36:06 24 4
gpt4 key购买 nike

在一个图像从另一个图像延伸的情况下,依此类推,这种行为会增加自定义图像的大小并添加更大的图层吗?

例如:
镜像cbelleza / springboot-maven-s2i从 Alpine 镜像扩展而来,在这种情况下,所有依赖项的大小为(115MB + 3.97MB)吗?

$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
cbelleza/springboot-maven-s2i latest 3b92af74af2d 28 minutes ago 115MB
alpine latest 7328f6f8b418 2 weeks ago 3.97MB

具有在多个子图像中引用的共享父图像,它会减小那些子图像的大小,还是最好在单个图像中包含所有依赖项和命令(apk,.gz,tar等)?

最佳答案

Q. In a scenario where a image extends from another image and so on, will this behavior increase the size of a custom image adding bigger layers?



每层分配不同数量的数据,并且不重复先前的数据。

将图像视为一个图层加上元数据。将层视为依赖树。图像的大小是指尖层加上每个祖先的总和。

比方说:
[layer A, image alpine] -> [layer B, no image] .-> [layer C, image app 1]
|
-> [layer D, image app 2]
image app1 = size(C) + size(B) + size(A)的大小
image app2 = size(D) + size(B) + size(A)的大小

Q. In this case, the size of all dependencies would it be (115MB + 3.97MB)?



是的,但是由于磁盘共享层,因此磁盘中的实际大小会小得多。

Q. Having a shared parent image that is referenced in multiple children images, does it reduce the size of those children images, or is better having a single image with all dependencies and commands included inside (apk, .gz, tar, etc)?



您可以有1个1GB的基本镜像和100个1MB的子镜像,总磁盘空间为(大约)= 1GB + 100 * 1MB〜= 2GB。而 不是 1GB + 100 *(1MB + 1GB)。
但是,每个子图像的大小仍为1GB + 1MB。

Docker注册表中应用了相同的概念,该注册表将重用任何先前推送的层。

一些文档 here

关于image - Docker镜像层次结构会增加层大小吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45065300/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com