📅  最后修改于: 2023-12-03 14:40:48.827000             🧑  作者: Mango
当我们运行应用程序容器时,经常需要查看其日志以调试和监测应用程序的运行状况。但是容器日志的持续增长可能导致磁盘空间不足,因此定期清理日志是必要的任务。
这里介绍如何在Docker中清理容器日志。
在Docker中,可以使用docker logs
命令来查看容器的日志。以下是一些示例:
$ docker logs my_container
这将输出my_container
容器的标准输出。
$ docker logs -f my_container
这将打印my_container
容器的实时输出,并将其缓冲到控制台。
$ docker logs --tail 50 my_container
这将输出my_container
容器的最后50行日志。
要清空容器日志,可以使用docker logs
命令与/dev/null
设备结合使用。以下是一些示例:
$ docker logs my_container > /dev/null
这将把my_container
容器的日志写入/dev/null
来清空它。
$ docker logs my_container | tee /var/log/docker/my_container.log > /dev/null
这将将my_container
容器的日志写入/var/log/docker/my_container.log
文件,并清空日志。
$ truncate -s 0 $(docker inspect --format='{{.LogPath}}' my_container)
这将在Linux主机上截断my_container
容器的日志文件,并清空容器日志。
为避免运行Docker时出现日志过大的问题,最好定期清理容器日志。
可以使用logrotate
来定期清理Docker容器日志。在Linux主机上,您可以编辑/etc/logrotate.conf
文件,并添加以下行:
/var/lib/docker/containers/*/*.log {
rotate 7
daily
compress
delaycompress
missingok
size 50M
}
这将在容器日志文件达到50MB时,每天轮转一次,并将旧日志压缩。它还会保留最近7个日志文件。
在Docker中清理容器日志是保证容器运行健康的必要步骤。本文介绍了如何查看容器日志,并提供了清空容器日志的示例。最后,还介绍了使用logrotate
定期清理容器日志的方法。