1、Docker容器日志查看
Docker容器日志查看我们都知道用:docker logs -f 容器名/容器ID
在实际使用中我们往往会忽略容器日志存储的问题,直到某天服务器磁盘告警才去排查问题,非常影响生产效率,下面我们就讲下如何时查看容器日志位置,及清除方法。
2、Docker容器日志位置查找
Linux下默认容器日志位置在:/var/lib/docker/containers/目录中对应的容器ID目录下, 以json.log结尾的文件,查看所有容器日志位置及大小的脚本如下:#!/bin/bash
echo "======== docker containers logs file list ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
ls -lh $log
done
注:如果对Docker工作目录有调整,请根据实际情况修改脚本中的find命令后的查找目录位置。下面的清除脚本也如此。
3、Docker容器日志清除及优化
清空Docker容器日志脚本:#!/bin/bash
echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
echo "clean logs : $log"
echo "" > $log
done
这样脚本执行一次会释放所有日志存储空间,但时间长了后日志依然会增长起来。你会说我们可以用定时任务crontab -e,将脚本加入的系统定时任务中由系统定时帮我们清理容器日志。这种方案虽然看起来很完美,但有点暴力,
而且如果需要查看定时任务执行时间点前的日志时就会很尴尬了。我们可以采取下面的方案——设置容器日志大小的方式来限制日志大小,这样会优雅了许多。脚本实现方法如下:cat < /etc/docker/daemon.json
{
"log-opts": {
"max-size": "20m",
"max-file": "10"
}
}
ENDDOCKER
systemctl daemon-reload
systemctl restart docker
关于日志文件大小及个数(max-size、max-file),你可以根据实际需要来调整。
如果你已使用了/etc/docker/daemon.json对Docker做过特殊配置,只需要把下面的内容添加到/etc/docker/daemon.json文件中,然后重启Docker服务即可。"log-opts": {
"max-size": "20m",
"max-file": "10"
}
×
选择打赏方式:
微信
QQ钱包
支付宝
打赏
打赏
打赏
多少都是心意!谢谢大家!!!
×
选择分享方式:
微信扫一扫,分享朋友圈
Or
手机扫一扫,精彩随身带