docker 日志清理
由于docker没有设置容器日志文件的大小,随着时间的累积,导致服务根目录的磁盘空间爆满,服务集体休克。真凶:日志文件。
默认的情况下docker的容器目录是
/var/lib/docker/containers
查看所有容器日志大小和清理所有容器日志命令:
ls -lh $(find /var/lib/docker/containers/ -name *-json.log)
truncate -s 0 /var/lib/docker/containers/*/*-json.log
docker日志文件大小设置
以上的方法随着时间的推移,容器日志会像杂草一样,卷土重来。要从根本上解决问题,需要限制容器服务的日志大小上限
docker-compose
配置容器docker-compose的max-size选项来实现
nginx:
image: nginx:1.12.1
restart: always
logging:
driver: “json-file”
options:
max-size: “2g”
重启nginx容器之后,其日志文件的大小就被限制在2GB.
全局设置
新建/etc/docker/daemon.json,若有就不用新建了。添加log-dirver和log-opts参数,样例如下:
# vim /etc/docker/daemon.json
{
"registry-mirrors": ["http://xxxx.io"],
"log-driver":"json-file",
"log-opts": {"max-size":"500m", "max-file":"3"}
}
max-size=500m,一个容器日志大小上限是500M。
max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。
log-driver = json-file 日志格式化为 JSON。这是 Docker 默认的日志驱动程序。
// 重启docker守护进程
# systemctl daemon-reload
# systemctl restart docker``
注意:设置的日志大小,只对新建的容器有效。