Docker镜像大于其文件系统

时间:2016-10-24 07:27:34

标签: docker containers

我有一个docker图像,我是从几个图层构建的,还有一个debian:jessie基本图像,我正在努力缩小图像。我添加了一个清理层而不是apt-get remove一堆包,并从文件系统中删除文件。当我运行生成的图像并在其中执行du -h时,我可以看到它是1.3GB。但是,当我在docker images中查看图像大小时,它会超过2.2GB,这是清理图层之前图像的大小。为什么最终图像不会变小?

1 个答案:

答案 0 :(得分:1)

您无法拥有清理图层 - Union File System并非如此。如果文件存在于第1层,并且您在第2层中删除它们,则所有Docker在您运行容器时都会隐藏已删除的文件。将文件保存到图像层后,就无法从该图层中删除它们。

您可以尝试使用Docker squash工具来缩小最终图像大小,或者根据Titouan Freville注释重写Dockerfiles - 在一个RUN语句中执行所有APT命令(更新,安装删除)。这样,保存图像层时,文件已经被清除。