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

6qfn3psc  于 2023-03-07  发布在  Docker
关注(0)|答案(2)|浏览(124)

我试图建立一个小脚本,删除所有的docker图像,除了一个小的“缓存”的N个最后的图像(回滚到最后的工作版本之一)。
有没有一个惯用的方法来做这件事?

laik7k3q

laik7k3q1#

您可以使用tail命令来完成此操作。
假设你只想保留最近的5张图片,你可以让tail从第n行开始显示列表,对于5张图片,你希望tail从第6行开始:

tail -n +6

将其与docker配合使用可以显示图像ID列表,默认情况下,这些ID按最近的排序。

docker images -q | tail -n +6

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

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

ct2axkht2#

与接受的答案类似,但没有-n,使用head

docker rmi $(docker images -aq | head -N)

例如,如果N==6:

docker rmi $(docker images -aq | head -6)

相关问题