我使用docker logs [container-name]来查看特定容器的日志。
有什么优雅的方法来清除这些日志吗?
我使用docker logs [container-name]来查看特定容器的日志。
有什么优雅的方法来清除这些日志吗?
当前回答
在我的Ubuntu服务器上,即使是sudo,我也会得到无法打开' /var/lib/docker/containers/*/*-json.log '来写:没有这样的文件或目录
但是结合docker检查和截断答案是有效的:
sudo truncate -s 0 `docker inspect --format='{{.LogPath}}' <container>`
其他回答
Use:
truncate -s 0 /var/lib/docker/containers/**/*-json.log
你可能需要sudo
sudo sh -c "truncate -s 0 /var/lib/docker/containers/**/*-json.log"
参考Jeff S. Docker:如何正确地清除Docker容器的日志?
参考:在文件被使用时截断它(Linux)
这将删除所有容器的日志文件:
sudo find /var/lib/docker/containers/ -type f -name "*.log" -delete
sudo sh -c "truncate -s 0 /var/lib/docker/containers/*/*-json.log"
你也可以在docker运行命令行上提供log-opts参数,如下所示:
docker run --log-opt max-size=10m --log-opt max-file=5 my-app:latest
或者是码头式的。Yml是这样的
my-app:
image: my-app:latest
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "5"
致谢:https://medium.com/@Quigley_Ja/ roting-docker -logs-keeping-your-overlay-folder-small-40cfa2155412 (James Quigley)
作为root用户,尝试执行以下命令:
> /var/lib/docker/containers/*/*-json.log
or
cat /dev/null > /var/lib/docker/containers/*/*-json.log
or
echo "" > /var/lib/docker/containers/*/*-json.log