Docker构建会生成许多未命名的图像

时间:2017-06-14 13:26:31

标签: python docker docker-build

所以我对Docker来说很新,所以如果这是一个新手问题就道歉......

我只是使用Docker(python 3 flask web app)构建我的第一个应用程序,它运行良好。 但是,当我运行docker images -a时,我注意到的一点是,即使我只运行一个构建命令来构建一个单独的图像altum-platform,它似乎已经创建了11个额外的图像!其中一个标记为python,所以我假设这与我的应用程序指定python3有关。然而其他都没有标记。它们都占用了相当大的空间,这并不理想!

我认为Docker图像都是一个很独立的东西?那么,为什么我在运行一个构建命令时有另外11个自动创建的图像?

Docker many images

1 个答案:

答案 0 :(得分:4)

Docker使用分层文件系统。当您有Dockerfile时,Docker会为每个指令(如FROM,RUN或ADD)创建一个新图层(您在屏幕截图中看到的内容)。层的优点是,它们可以重复使用。

例如,如果您有两个图像,它们都在Ubuntu上运行程序,Docker可以重用Ubuntu图像而不是创建新图像,从而节省磁盘空间。 docker images -a显示的大小表示虚拟大小,而不是实际大小。因此,您的altum-platform大1.43 GB而不是4x 1.43 GB。有关详细信息,请查看here