Docker容器日志太大怎么清理?
我在本地用 Docker 跑了个前端开发环境,结果发现 /var/lib/docker/containers 下的日志文件暴涨到几个GB,手动删又怕出问题,有没有安全的清理方式?
试过在 docker-compose.yml 里加日志限制,但旧日志还在:
services:
web:
image: nginx
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
重启容器后新日志是受控了,但之前那个超大的 -json.log 文件还在占空间,直接 rm 掉会影响容器运行吗?
1. 直接清理现有日志(最暴力但有效)
先停掉相关容器,然后用
truncate命令清空日志文件:这样不会删除文件本身,只是清空内容,比直接rm安全。操作完重启容器就行。
2. 配置全局日志限制(一劳永逸)
在
/etc/docker/daemon.json加配置(没有就新建):然后
sudo systemctl restart docker生效。这个和你写在compose里的效果一样,但对所有容器生效。3. 临时解决方案(不用重启)
用docker自带的日志清理命令:
先备份最后100行日志,然后重启容器会自动重建日志文件。
个人建议用方案2,我自己的开发机都这么配的。至于已经存在的日志文件,方案1清掉就行,不会影响容器运行,最多就是查不到历史日志了。