我使用阅读了我的 Docker 容器日志输出
docker logs -f <container_name>
我通过调用 console.log()
将大量数据记录到我的 node.js 应用程序的日志中。我需要清理日志,因为它太长了,而且 docker logs
命令在到达末尾之前首先会遍历日志的现有行。如何清洁它以使其再次变短?我想看到这样的命令:
docker logs clean <container_name>
但它似乎不存在。
原文由 pkout 发布,翻译遵循 CC BY-SA 4.0 许可协议
首先,如果你只需要看到更少的输出,你可以让 docker 只显示最近的行:
或者您可以限制多行:
要删除 Docker for Linux 安装上的日志,您可以对单个容器运行以下命令:
请注意,这需要root,我不建议这样做。如果您在 docker 将日志写入同一文件的过程中将文件设为空,则可能会损坏日志文件。相反,您应该配置 docker 来轮换日志。
最后,您可以在
/etc/docker/daemon.json
文件中 配置 docker 以自动轮换日志:这允许 docker 每个容器最多保留 3 个日志文件,每个文件限制为 10 兆(因此每个容器的日志限制在 20 到 30 兆之间)。您需要运行
systemctl reload docker
来应用这些更改。这些更改是任何新创建的容器的默认值,它们不适用于已创建的容器。您需要删除并重新创建任何现有容器才能应用这些设置。