我使用docker logs [container-name]来查看特定容器的日志。

有什么优雅的方法来清除这些日志吗?


当前回答

这将删除所有容器的日志文件:

sudo find /var/lib/docker/containers/ -type f -name "*.log" -delete

其他回答

这将删除所有容器的日志文件:

sudo find /var/lib/docker/containers/ -type f -name "*.log" -delete

下面是一个清除docker容器日志的跨平台解决方案:

docker run --rm -v /var/lib/docker:/var/lib/docker alpine sh -c "echo '' > $(docker inspect --format='{{.LogPath}}' CONTAINER_NAME)"

将其粘贴到终端中,并将CONTAINER_NAME更改为所需的容器名称或id。

在使用docker桌面的计算机上,我们使用: Truncate -s 0 //wsl.localhost/docker-desktop-data/data/docker/containers/*/*-json.log

对于linux发行版,你可以使用这个路径: 截断-s 0 /var/lib/docker/containers/*/*-json.log

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)

在我的Ubuntu服务器上,即使是sudo,我也会得到无法打开' /var/lib/docker/containers/*/*-json.log '来写:没有这样的文件或目录

但是结合docker检查和截断答案是有效的:

sudo truncate -s 0 `docker inspect --format='{{.LogPath}}' <container>`