如何清理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/
这需要在启动容器之前完成。