如何清理Docker容器日志?

我使用读取我的Docker容器日志输出

docker logs -f <container_name> 

我通过调用console.log()将大量数据logging到node.js应用程序中的日志中。 我需要清理日志,因为日志太长了, docker logs命令首先在日志的现有行中运行,然后才结束。 我如何清理它使其再次变短? 我想看到一个像这样的命令:

 docker logs clean <container_name> 

但似乎并不存在。

这不是理想的解决scheme,但是在Docker构build一个命令来完成之前,这是一个很好的解决方法。

用这个内容创build一个脚本文件docker-clean-logs.sh

 #!/bin/bash rm $(docker inspect $1 | grep -G '"LogPath": "*"' | sed -e 's/.*"LogPath": "//g' | sed -e 's/",//g'); 

授予执行权限:

 chmod +x ./docker-clean-logs.sh 

停止要清理的Docker容器:

 docker stop <container_name> 

然后运行上面的脚本:

 ./docker-clean-logs.sh <container_name> 

最后再次运行你的容器:

 docker run ... 

在此页面上,用户sgarbesi信用: https : //github.com/docker/compose/issues/1083

您可以使用本文中所述的logrotate

https://sandro-keil.de/blog/2015/03/11/logrotate-for-docker-container/

这需要在启动容器之前完成。