是否可以清除docker容器日志文件-中途运行?

是否可以清除docker容器日志文件-中途运行?,docker,containers,Docker,Containers,我在/var/lib/docker/container/…-json.log 是否可以在容器仍在运行时将其移除?它是否会创建一个新的日志文件并继续写入该日志文件(首选选项)?否:如果您手动删除日志文件,Docker不会重新创建日志文件。 如果日志一致性对您来说无关紧要,那么更好的方法是清除日志文件的内容。 您可以使用(sudo是必需的,因为docker Stuff的所有者/组是root): 显示20个最新日志: docker logs --tail=10 while-true Sun Apr 1

我在
/var/lib/docker/container/…-json.log


是否可以在容器仍在运行时将其移除?它是否会创建一个新的日志文件并继续写入该日志文件(首选选项)?

否:如果您手动删除日志文件,Docker不会重新创建日志文件。
如果日志一致性对您来说无关紧要,那么更好的方法是清除日志文件的内容。 您可以使用(sudo是必需的,因为docker Stuff的所有者/组是root):

显示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
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
将日志截断为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: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
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

即使文件不断被写入,也可以吗?是的,您不会有任何错误。我用一个基本的例子更新了。总是有一个风险,你会在文件的中间被截断,这时日志会像这个评论员看到的那样被打破:@ BMICCH是正确的,但可能是因为DoCKER执行的JSON日志处理。即使在损坏的json中也应该可以这样做:
cat$(docker-inspect-f={{.LogPath}}'foo容器)
可能的重复:这确实非常相似,但我的问题是有一个不断更新的文件的额外细节