我正在尝试构建一个小脚本,除了N个最后一个图像的小“缓存”之外,删除所有docker镜像(用于回滚到最后一个工作版本)。
有没有惯用的方法呢?
答案 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)