docker 图像的虚拟大小是什么意思?
What does virtual size of docker image mean?
当您键入 docker images
时,它会显示哪些图像在本地可用以及其他信息。此信息的一部分是 虚拟大小 。那到底是什么?
我在GitHub Issues #22 on docker中找到了一些解释,但我还是不清楚。我真正想知道的是,要下载的字节数以及图像在我的硬盘上需要多少字节。
此外DockerHub 2.0还有一个信息。当您查看图像的 Tags 页面时,会显示另一个值。至少这似乎总是比docker images
.
给出的信息小得多
"virtual size" 是指组成图像的所有层的磁盘大小的总和。例如,如果您有两个图像,app-1
和 app-2
,并且都基于总大小为 100MB 的公共 distro
image/layer,并且 app-1
额外增加 10MB,但 app-2
额外增加 20MB,虚拟大小将分别为 110MB 和 120MB,但总磁盘使用量仅为 130MB,因为基础层在两者之间共享。
由于在传输过程中对层应用了 gzip 压缩,因此传输大小将会变小(在大多数情况下会变小)。
https://github.com/docker-library/docs/blob/162cdda0b66dd62ea1cc80a64cb6c369e341adf4/irssi/tag-details.md#irssilatest 中提供的扩展细节可能会使这一点更加具体明显。如您所见,irssi:latest
的虚拟大小(所有磁盘层大小的总和)为 261.1MB,但 "Content-Length"(传输中的压缩大小)仅为 97.5MB,并且这是假设您还没有任何层,当您很可能已经下载了第一层时,它占虚拟大小的 125.1MB 和 "Content-Length" 的 51.4MB(很可能您已经有了它,因为顶层是 debian:jessie
,这是顶层图像的通用基础)。
irssi:latest
- Total Virtual Size: 261.1 MB (261122797 bytes)
- Total v2 Content-Length: 97.5 MB (97485603 bytes)
Layers (13)
6d1ae97ee388924068b7a4797d995d57d1e6194843e7e2178e592a880bf6c7ad
- Created: Fri, 04 Dec 2015 19:27:57 GMT
- Docker Version: 1.8.3
- Virtual Size: 125.1 MB (125115267 bytes)
- v2 Blob:
sha256:d4bce7fd68df2e8bb04e317e7cb7899e981159a4da89339e38c8bf30e6c318f0
- v2 Content-Length: 51.4 MB (51354256 bytes)
- v2 Last-Modified: Fri, 04 Dec 2015 19:45:49 GMT
8b9a99209d5c8f3fc5b4c01573f0508d1ddaa01c4f83c587e03b67497566aab9
...
当您键入 docker images
时,它会显示哪些图像在本地可用以及其他信息。此信息的一部分是 虚拟大小 。那到底是什么?
我在GitHub Issues #22 on docker中找到了一些解释,但我还是不清楚。我真正想知道的是,要下载的字节数以及图像在我的硬盘上需要多少字节。
此外DockerHub 2.0还有一个信息。当您查看图像的 Tags 页面时,会显示另一个值。至少这似乎总是比docker images
.
"virtual size" 是指组成图像的所有层的磁盘大小的总和。例如,如果您有两个图像,app-1
和 app-2
,并且都基于总大小为 100MB 的公共 distro
image/layer,并且 app-1
额外增加 10MB,但 app-2
额外增加 20MB,虚拟大小将分别为 110MB 和 120MB,但总磁盘使用量仅为 130MB,因为基础层在两者之间共享。
由于在传输过程中对层应用了 gzip 压缩,因此传输大小将会变小(在大多数情况下会变小)。
https://github.com/docker-library/docs/blob/162cdda0b66dd62ea1cc80a64cb6c369e341adf4/irssi/tag-details.md#irssilatest 中提供的扩展细节可能会使这一点更加具体明显。如您所见,irssi:latest
的虚拟大小(所有磁盘层大小的总和)为 261.1MB,但 "Content-Length"(传输中的压缩大小)仅为 97.5MB,并且这是假设您还没有任何层,当您很可能已经下载了第一层时,它占虚拟大小的 125.1MB 和 "Content-Length" 的 51.4MB(很可能您已经有了它,因为顶层是 debian:jessie
,这是顶层图像的通用基础)。
irssi:latest
- Total Virtual Size: 261.1 MB (261122797 bytes)
- Total v2 Content-Length: 97.5 MB (97485603 bytes)
Layers (13)
6d1ae97ee388924068b7a4797d995d57d1e6194843e7e2178e592a880bf6c7ad
- Created: Fri, 04 Dec 2015 19:27:57 GMT
- Docker Version: 1.8.3
- Virtual Size: 125.1 MB (125115267 bytes)
- v2 Blob:
sha256:d4bce7fd68df2e8bb04e317e7cb7899e981159a4da89339e38c8bf30e6c318f0
- v2 Content-Length: 51.4 MB (51354256 bytes)
- v2 Last-Modified: Fri, 04 Dec 2015 19:45:49 GMT
8b9a99209d5c8f3fc5b4c01573f0508d1ddaa01c4f83c587e03b67497566aab9
...