gpt4 book ai didi

docker - 如何清理 Docker 容器日志?

转载 作者:IT老高 更新时间:2023-10-28 12:41:18 29 4
gpt4 key购买 nike

我使用

读取了我的 Docker 容器日志输出
docker logs -f <container_name>

我通过调用 console.log() 将大量数据记录到我的 node.js 应用程序的日志中。我需要清理日志,因为它太长了,并且 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 来轮换日志。


最后,您可以 configure 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 - 如何清理 Docker 容器日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41091634/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com