由于某些内部问题,我们需要在未使用的图像一经使用就立即将其删除。
我确实知道可以使用Garbage collection,但是它并没有提供我们需要的严格政策。
我遇到了this解决方案,但是
我正在考虑直接在节点上设置cron
作业以运行docker prune
,但我希望有更好的方法
不知道是否会有所作为,但我们正在使用AKS
答案 0 :(得分:2)
这实际上并没有太大的作用,因为如果再次请求,它们将被重新下载。但是,如果您坚持要愚蠢的话,最好的选择是DaemonSet,它与安装在主机docker control socket hostPath上的主机一起运行,并如上所述运行docker system prune
。您不能使用cron作业,因此需要自己编写循环,可能只是bash -c 'while true; do docker system prune && sleep 3600; done'
之类的东西。
答案 1 :(得分:0)
唯一愚蠢的是您认为下载的图像是占用空间的唯一罪魁祸首。除了这些资源之外,还有许多资源会留下来并占用空间,尤其是在随着时间的推移进行 docker 构建时。许多中间容器和图像并不总是被清理干净,尤其是在构建错误之后。定期运行 docker system prune all
将释放这些资源和相关的磁盘空间,这在临时磁盘存储不那么容易增加的情况下非常有用。