docker 日志 logrotate
时间: 2023-06-28 20:12:53 浏览: 190
Docker 日志是容器产生的标准输出和标准错误输出,它们被 Docker 容器引擎捕获并定向到一个特殊的文件中,该文件位于 Docker 宿主机上的 /var/lib/docker/containers/[CONTAINER_ID]/[CONTAINER_ID]-json.log 路径下。随着时间的推移,日志文件会变得越来越大,因此需要采取措施来限制文件大小并在必要时进行轮换。这就是 logrotate 工具的作用。
logrotate 是一个用于轮换日志文件的工具,它可以根据一组预定义的规则定期轮换日志文件,并将旧文件备份、压缩或删除,以便节省磁盘空间和保留历史记录。在 Docker 宿主机上,可以通过配置 logrotate 来管理 Docker 容器的日志。
要启用 Docker 日志的轮换,需要在 Docker 宿主机上创建一个 logrotate 配置文件,并将其放置在 /etc/logrotate.d 目录中。该文件应指定要轮换的日志文件、轮换频率、备份和压缩选项等。以下是一个示例配置文件:
```
/var/lib/docker/containers/*/*.log {
rotate 7
daily
compress
delaycompress
missingok
notifempty
copytruncate
}
```
该配置文件将轮换 Docker 容器日志,将日志文件最多保留 7 个备份,每天轮换一次,启用压缩,并保留最新的空文件。它还使用 copytruncate 选项来避免在轮换期间中断日志流。
完成配置后,可以手动运行 logrotate 命令来轮换 Docker 日志,也可以将其添加到定时任务中以自动运行。例如,可以将以下行添加到 /etc/crontab 文件中,以每天凌晨 3 点运行 logrotate:
```
0 3 * * * root /usr/sbin/logrotate /etc/logrotate.d/docker
```
阅读全文