Docker图像的虚拟大小是什么意思?

Jan*_*zki 5 docker dockerhub

键入时docker images,它将显示本地可用的图像和其他信息.部分信息是虚拟大小.究竟是什么?

在码头上的GitHub问题#22中找到了一点解释,但这对我来说仍然不清楚.我真正想知道的是,要下载的字节数以及映像在硬盘上需要的字节数.

此外,Docker Hub 2.0还有另一个信息.当您查看图像的" 标签"页面时,会显示另一个值.至少与使用的信息相比,这似乎总是要小得多docker images.

tia*_*non 5

“虚拟大小”是指组成图像的所有层的磁盘大小的总和。例如,如果您有两个映像app-1app-2,并且两者都基于distro总大小为 100MB 的公共映像/图层,并且app-1额外添加 10MB 但又app-2添加额外 20MB,则虚拟大小将分别为 110MB 和 120MB,但由于基础层在两者之间共享,因此总磁盘使用量仅为 130MB。

由于在传输过程中对各层应用了 gzip 压缩,因此传输大小将会减小(在大多数情况下会减小很多)。

https://github.com/docker-library/docs/blob/162cdda0b66dd62ea1cc80a64cb6c369e341adf4/irssi/tag-details.md#irssilatest中提供的扩展详细信息可能会使这一点更加具体明显。正如您所看到的,虚拟大小(所有磁盘层大小的总和)为irssi:latest261.1MB,但“内容长度”(传输中的压缩大小)仅为 97.5MB,并且假设您不这样做还没有任何层,当您很可能已经下载了第一层时,它占虚拟大小的 125.1MB 和“内容长度”的 51.4MB(并且很可能您已经拥有它,因为顶层是debian:jessie,它是顶层图像的公共基础)。

irssi:latest

  • 总虚拟大小:261.1 MB(261122797 字节)
  • v2 内容长度总计:97.5 MB(97485603 字节)

层 (13)

6d1ae97ee388924068b7a4797d995d57d1e6194843e7e2178e592a880bf6c7ad
  • 创建时间:2015 年 12 月 4 日星期五 19:27:57 GMT
  • 泊坞窗版本:1.8.3
  • 虚拟大小:125.1 MB(125115267 字节)
  • v2 斑点:sha256:d4bce7fd68df2e8bb04e317e7cb7899e981159a4da89339e38c8bf30e6c318f0
  • v2 内容长度:51.4 MB(51354256 字节)
  • v2 最后修改时间:2015 年 12 月 4 日星期五 19:45:49 GMT
8b9a99209d5c8f3fc5b4c01573f0508d1ddaa01c4f83c587e03b67497566aab9

...