我下面有一个非常大的日志文件/var/lib/docker/container/<container_hash>/...-json.log
是否可以在容器仍在运行时将其删除?它会创建一个新的并继续写入(首选选项)吗?
否:Docker 不会在您手动删除日志文件时重新创建日志文件。
如果日志一致性对您来说并不重要,更好的方法是清除日志文件的内容。
你可以这样做(需要sudo,因为docker东西的所有者/组是root):
sudo sh -c "truncate -s 0 /var/lib/docker/container/<container_hash>/...-json.log"
关于你的问题:
即使文件不断被写入也可以吗? –
至少没有错误。
这里有一个简单的 Linux 示例来检查:
运行一个每 0.5 秒写入日志的容器:
docker run -d --name while-true alpine sh -c "while true; do date; sleep 0.5s; done"
显示最近 20 条日志:
docker logs --tail=10 while-true
Sun Apr 11 17:29:27 UTC 2021
Sun Apr 11 17:29:27 UTC 2021
Sun Apr 11 17:29:28 UTC 2021
Sun Apr 11 17:29:28 UTC 2021
Sun Apr 11 17:29:29 UTC 2021
Sun Apr 11 17:29:29 UTC 2021
Sun Apr 11 17:29:30 UTC 2021
Sun Apr 11 17:29:30 UTC 2021
Sun Apr 11 17:29:31 UTC 2021
Sun Apr 11 17:29:31 UTC 2021
将日志截断为 0 字节 10 次:
for i in $(seq 1 10); do truncate -s 0 $(docker inspect -f='{{.LogPath}}' while-true); done
显示最近 20 条日志:
docker logs --tail=10 while-true
Sun Apr 11 17:29:35 UTC 2021
Sun Apr 11 17:29:35 UTC 2021
Sun Apr 11 17:29:36 UTC 2021
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)