我知道如何删除N天前创建的旧Docker镜像。See here但我真正想做的是删除过去N天未使用的旧Docker镜像。目标是保留经常使用的图像,即使在我进行清理时没有容器实际使用它们。这可能吗?
frebpwbc1#
这并不简单,因为docker不跟踪使用时间戳,只跟踪创建。因此内置命令不能根据使用情况做出决定。一个旧的但定期活动的票证可以解决此问题,它是https://github.com/moby/moby/issues/4237我知道有两个独立的程序试图解决这个问题,它们都监视Docker事件流来创建自己的容器使用日志。docuum将磁盘使用保持在设定的限制内,如果超过该限制,则按使用删除最旧的映像https://github.com/stepchowfun/docuumdocker-gc删除X时间内未使用的任何图像。当docker-gc文档提到age时,它意味着自上次使用https://github.com/docwhat/docker-gc以来的时间
bvhaajcl2#
我能想到的最接近的东西是docker image prune -a --filter "until=24h",它删除至少24小时前创建的所有未使用的图像。有关更多参考,您可以查看Docker Pruning和Docker System Prune文档。
docker image prune -a --filter "until=24h"
2条答案
按热度按时间frebpwbc1#
这并不简单,因为docker不跟踪使用时间戳,只跟踪创建。因此内置命令不能根据使用情况做出决定。
一个旧的但定期活动的票证可以解决此问题,它是https://github.com/moby/moby/issues/4237
我知道有两个独立的程序试图解决这个问题,它们都监视Docker事件流来创建自己的容器使用日志。
docuum将磁盘使用保持在设定的限制内,如果超过该限制,则按使用删除最旧的映像https://github.com/stepchowfun/docuum
docker-gc删除X时间内未使用的任何图像。当docker-gc文档提到age时,它意味着自上次使用https://github.com/docwhat/docker-gc以来的时间
bvhaajcl2#
我能想到的最接近的东西是
docker image prune -a --filter "until=24h"
,它删除至少24小时前创建的所有未使用的图像。有关更多参考,您可以查看Docker Pruning和Docker System Prune文档。