![基于时间的 Docker 日志轮换](https://linux22.com/image/752767/%E5%9F%BA%E4%BA%8E%E6%97%B6%E9%97%B4%E7%9A%84%20Docker%20%E6%97%A5%E5%BF%97%E8%BD%AE%E6%8D%A2.png)
我们正在运行一组 Docker Swarm 服务,根据我们的隐私政策,我们只能保留最近 6 个月的日志,不能保留更早的日志。我尝试通过不同的日志驱动程序来实现这一点,但它们(据我所知)都只适用于最大文件大小,而不适用于时间/日期。
我想到的一个解决方案是:使用json-file
日志驱动程序,然后logrotate.d
使用rotate 180
和daily
选项进行设置。
然而,问题是json-file
日志记录驱动程序不会禁用标准 Docker 日志记录(我的意思是docker logs -f ...
或docker service logs -f ...
),它使用一些内部 Docker 存储来存储日志,如文档所述:
只有
json-file
和驱动程序可直接从和journald
获得日志。使用任何其他驱动程序都不会打印任何日志。docker-compose up
docker-compose logs
在这种情况下,轮换将对json-file
日志起作用,但“内部”日志仍将保存更长时间。
因此,我想知道,如何实现基于时间的 Docker 日志轮换?