Docker映像以相同的大小保存来自相同Dockerfile的tarball

时间:2019-05-03 12:29:34

标签: image docker

我已经在CentOS 7(Docker版本1.13.1,Build b2f74b2)和基于相同Dockerfile的Fedora 29(v18.09.3)节点上构建了Docker映像,并且还交叉检查了Dockerfile具有相同的哈希值

sha256sum Dockerfile | cut -b 1-16
38e6a42c5c01a1ac

并使用

构建容器
docker build  --build-arg RUN=20190503.centos  -t container:20190503.centos .

为了进行比较/以后加载,我将图像保存到了tarball中。

docker save --output /var/tmp/image_20190503.desktop.tar batch:20190503.desktop

我曾期望,最终的tarball的大小应与基于相同Dockerfile的文件相同。 Bowever,图像tarball差异很大

container     20190503.desktop    2e3e545f245d        About an hour ago   6.6 GB
container     20190503.centos     afebf959a752        About an hour ago   9.7 GB
-rw------- 1 root root 9,2G May  3 12:44 /var/tmp/container_20190503.centos.tar
-rw------- 1 root root 6,3G May  3 12:53 /var/tmp/container_20190503.desktop.tar

(大尺寸是由于不幸的“外部”要求所致)

(同样,Docker在整个层空间上的大小估算似乎与最终的tarball有点矛盾)

有理由吗,为什么在使用相同版本的Dockerfile但在不同版本的Docker / OS上构建Docker映像时,保存的映像应该具有不同的大小?

1 个答案:

答案 0 :(得分:0)

尝试使用docker history <image_id>来查看每个版本中的哪些层大小不同。