基于时间的 Docker 日志轮换

基于时间的 Docker 日志轮换

我们正在运行一组 Docker Swarm 服务,根据我们的隐私政策,我们只能保留最近 6 个月的日志,不能保留更早的日志。我尝试通过不同的日志驱动程序来实现这一点,但它们(据我所知)都只适用于最大文件大小,而不适用于时间/日期。

我想到的一个解决方案是:使用json-file日志驱动程序,然后logrotate.d使用rotate 180daily选项进行设置。

然而,问题是json-file日志记录驱动程序不会禁用标准 Docker 日志记录(我的意思是docker logs -f ...docker service logs -f ...),它使用一些内部 Docker 存储来存储日志,如文档所述:

只有json-file和驱动程序可直接从和journald获得日志。使用任何其他驱动程序都不会打印任何日志。docker-compose updocker-compose logs

在这种情况下,轮换将对json-file日志起作用,但“内部”日志仍将保存更长时间。

因此,我想知道,如何实现基于时间的 Docker 日志轮换?

相关内容