Docker的容器日志问题处理
起因
最近又碰到因为docker运行太久,容器的日志把硬盘占满的事故。在我用Docker的这些年,这种事情发生过很多次了。还是记录一下吧。
排查
首先看一下docker各容器的日志占用空间情况:
# 查看日志文件大小
sudo du -h /var/lib/docker/containers/*/*-json.log
清理
可以选择清理指定容器,或者全部清除:
# 清空指定容器的日志文件(保留文件)
sudo sh -c 'echo "" > $(docker inspect --format='{{.LogPath}}' <container-name>)'
# 或者直接删除全部日志文件(Docker会自动创建新的)
sudo rm /var/lib/docker/containers/<container-id>/<container-id>-json.log
不过更好的方法是截断,保留一部分:
sudo truncate -s 10M /var/lib/docker/containers/*/*-json.log
sudo systemctl restart docker
可能需要重启服务才能把空间释放出来。
预防
要想从根本上解决这个问题,还是得预防性配置一下。修改/etc/docker/daemon.json:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
限制日志文件最大10M,最多保留3个。需要重启docker服务才能生效。
推送到[go4pro.org]