Docker镜像:虚拟大小与实际大小

时间:2016-10-04 14:06:34

标签: docker

这是我的docker images命令的输出:

$ docker images
REPOSITORY      TAG            IMAGE ID       CREATED         SIZE
redis           3.0.0          6b81c9436dd1   17 months ago   111.1 MB
nginx           1.7            d5acedd7e96a   17 months ago   93.45 MB

这些图片共享一个公共图层(debian:jessie,大小为85MB),您可以看到here。站在这个输出上这两个图像应占用我的磁盘空间204.5MB,但据我所知(由于共享层),这些图像应该只使用119.55MB的磁盘空间(即204.5MB - 85MB)。

这个假设是对的吗? 为什么docker image输出中的标题“VIRTUAL SIZE”已被删除“?

1 个答案:

答案 0 :(得分:0)

是的,这些图像确实共享一个公共基础层。您可以查看docker inspect,其中最新版本显示它们具有相同的基础层:

> docker inspect -f ' {{ .RootFS }}' redis
{layers [sha256:142a601d97936307e75220c35dde0348971a9584c21e7cb42e1f7004005432ab ...

> docker inspect -f ' {{ .RootFS }}' nginx
{layers [sha256:142a601d97936307e75220c35dde0348971a9584c21e7cb42e1f7004005432ab ...

至于标签改变的原因 - source code可以告诉你,但我说“虚拟图像”不是一个准确的描述。图像尺寸 图像尺寸 - 如果您要将图像拉到干净的盒子上,它就是您需要的空间。