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

当你键入docker images它会显示哪些图像是本地可用的和其他信息。 部分信息是虚拟大小 。 那到底是什么?

我在Docker的GitHub第二十二号问题中find了一点小小的解释,但这个问题仍然不清楚。 我真正想知道的是,要下载的字节量以及映像在我的硬盘驱动器上需要的字节数。

此外,Docker Hub 2.0还有其他信息。 当您查看图片的“ 标签”页面时,会显示另一个值。 至less这似乎总是比docker images给出的信息小得多。

“虚拟大小”是指图像所组成的所有层的磁盘大小的总和。 例如,如果您有两个图像, app-1app-2 ,都基于一个共同的distro图像/图层,其总大小为100MB, app-1增加了10MB,但是app-2增加了额外的20MB ,虚拟大小将分别为110MB和120MB,但是由于基础层在两者之间共享,所以总的磁盘使用量将只有130MB。

由于在传输过程中将Gzip压缩应用于各层,因此传输大小将会减less(大多数情况下相当多)。

https://github.com/docker-library/docs/blob/162cdda0b66dd62ea1cc80a64cb6c369e341adf4/irssi/tag-details.md#irssilatest中提供的扩展详细信息可能会使这个更具体明显。 如您所见, irssi:latest的虚拟大小(所有磁盘层大小的总和)为261.1MB,但“Content-Length”(压缩大小在途)仅为97.5MB,假设你已经没有任何图层了,当你很有可能已经下载了第一层,这个图层占据了虚拟尺寸的125.1MB和51.4MB的“Content-Length”(你可能拥有它已经是因为顶层是debian:jessie ,这是顶层图像的通用基础)。

irssi:latest

  • 总虚拟大小:261.1 MB(261122797字节)
  • Total v2 Content-Length:97.5 MB(97485603 bytes)

层(13)

6d1ae97ee388924068b7a4797d995d57d1e6194843e7e2178e592a880bf6c7ad

  • 创build于:2015年12月04日星期五19:27:57 GMT
  • Docker版本:1.8.3
  • 虚拟大小:125.1 MB(125115267字节)
  • v2 Blob: sha256:d4bce7fd68df2e8bb04e317e7cb7899e981159a4da89339e38c8bf30e6c318f0
  • v2内容长度:51.4 MB(51354256个字节)
  • v2 Last-Modified:Fri,2015年12月4日19:45:49 GMT

8b9a99209d5c8f3fc5b4c01573f0508d1ddaa01c4f83c587e03b67497566aab9