如何清除Docker容器日志?

我使用以下命令读取了Docker容器日志输出

docker logs -f <container_name>

我通过调用来将大量数据记录到node.js应用程序的日志中console.log()。我需要清理日志,因为它太长了,并且该docker

logs命令首先运行日志的现有行,然后结束。我该如何清洁使其再次变短?我想查看类似的命令:

docker logs clean <container_name>

但是它似乎不存在。

回答:

首先,如果只需要查看较少的输出,则可以让docker只向您显示更新的行:

docker logs --since 30s -f <container_name_or_id>

或者,您可以限制一些行:

docker logs --tail 20 -f <container_name_or_id>


要删除Docker for Linux安装上的日志,可以对单个容器运行以下命令:

echo "" > $(docker inspect --format='{{.LogPath}}' <container_name_or_id>)

请注意,这需要root用户,我不建议这样做。如果在Docker中间将文件写入同一文件的日志中使该文件为空,则可能会损坏该日志文件。相反,您应该配置docker旋转日志。


最后,您可以将docker配置为使用/etc/docker/daemon.json文件中的以下内容自动轮换日志:

{

"log-driver": "json-file",

"log-opts": {"max-size": "10m", "max-file": "3"}

}

这使Docker每个容器最多可以保留3个日志文件,每个文件限制为10兆(因此,每个容器的日志限制为20到30兆)。您将需要运行systemctl

reload

docker以应用这些更改。这些更改是任何新创建的容器的默认设置,它们不适用于已创建的容器。您将需要删除并重新创建任何现有容器以应用这些设置。

以上是 如何清除Docker容器日志? 的全部内容, 来源链接: utcz.com/qa/432706.html

回到顶部