现象
使用过docker的人都知道,在正常情况下,有经验的人员都会在程序的build脚本中最后添加一个docker rmi的操作,把自己刚刚使用过的image删除,目的就是及时释放磁盘空间,省的以后人工清理。
但是总会有一些人不这么做,要么是偷懒,要么是小白没想到,这样时间久了还是会磁盘被占满。尤其是在持续集成环境中,大家公用一个build machine的时候。大家各自打扫门前雪,更加不会有人care磁盘会不会被占满。
方法
为了一劳永逸的解决这个问题,最好的办法莫过于通过定时任务来清理旧的image。
这个方法听起来高大上,用起来简单的很。
运行crontab -e命令编辑定时任务。
crontab -e
在打开的文本编辑器最后添加如下一行,然后保存退出。
0 1 * * * docker image prune -a --force --filter "until=72h"
然后执行下面的命令使定时任务生效。
systemctl restart crond.service
其实,到这里,整个配置就结束了。接下来我们简单解释一下。
上面的定时任务是每天夜里1点钟删除3天(72h)之前的image。具体的操作时间,具体的image保留时间,大家根据自己的情况修改。

本文介绍了如何通过定时任务自动清理Docker镜像以释放磁盘空间。通常,开发者在构建脚本中应删除不再使用的镜像,但有时会因为疏忽或不了解而遗漏。这可能导致磁盘空间逐渐被占满,特别是在共享构建环境中。为了解决这个问题,可以设置一个crontab任务,每天凌晨1点自动执行`docker image prune`命令,删除3天前的镜像。配置过程包括编辑crontab文件添加定时任务,然后重启cron服务。此方法确保了旧镜像的自动清理,避免了手动管理的麻烦。

4245

被折叠的 条评论
为什么被折叠?



