Docker - 删除除最后N个图像之外的所有图像

时间:2016-11-30 15:02:41

标签: docker

我正在尝试构建一个小脚本,除了N个最后一个图像的小“缓存”之外,删除所有docker镜像(用于回滚到最后一个工作版本)。

有没有惯用的方法呢?

1 个答案:

答案 0 :(得分:6)

您可以使用tail命令来完成此任务。

我们假设您只想保留最近的5张图片。您可以告诉tail显示从第n行开始的列表。对于5张图像,您需要从第6行开始尾部:

tail -n +6

将其与docker配对,以显示您的图像ID列表,默认情况下按最新排序。

docker images -q | tail -n +6

您可以将所有这些传递给remove images命令。这假设您正在使用bash shell;如果使用csh派生的shell,则可能需要不同的语法。

docker rmi $(docker images -q | tail -n +6)