如何自动删除旧的Docker镜像?

现在使用Docker一段时间后,我实际上遇到了磁盘空间问题,因为存储了许多图像(每个版本一个):

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE registry latest 376ca9433bfe 4 weeks ago 429.1 MB registry 0.6.5 376ca9433bfe 4 weeks ago 429.1 MB registry 0.6.3 1f7bbd131cd8 5 weeks ago 486.2 MB registry 0.6.2 0b520d776e7d 5 weeks ago 466.5 MB registry 0.6.1 9f98cb899f46 5 weeks ago 456.4 MB registry 0.6.0 873f518b98ef 5 weeks ago 466.4 MB registry 0.6.4 b04ace768d59 5 weeks ago 486.2 MB 

我知道我可以使用Docker rmi <IMAGE_ID>删除旧版本。

有没有办法限制在Docker中存储的图像版本的数量,或自动删除它们?

不是我的知识不。 这不是Docker的责任。

你可以写一个脚本和cron的。

另外,请注意,如果您有效地使用caching,您的图像只应在最后的Dockerfile构build步骤中有所不同。 要做到这一点,确保无论更改是最后一步。 在这种情况下,尽pipe每个映像的虚拟大小都超过400 MB,但实际占用的空间只是最新(非caching)步骤的文件层大小。

你可以使用docker pull registry:latest只拉取最新的图像。 您只能检索最新的图像。

标记为最新的图像将改变。 你只需要运行docker pull registry:latest再次运行docker pull registry:latest ,然后删除现在将被打乱的旧映像。