标签:EOS 脚本 drive 不同 container debian ls -l open done
美国第三任总统(托马斯.杰弗逊)曾说过:“不要因为别的人相信或否定了什么东西,你也就去相信它或否定它。上帝赠予你一个用来判断真理和谬误的头脑。那你就去运用它吧!”。
在没有陪你奔跑的日子,努力加油哦!
????今天早上回到公司,测试人员跑过来说,测试环境访问不了了???,当时懵逼状态,昨天晚上还好好的,为什么突然就不能正常访问了?最后发现docker容器运行产生日志过多,导致了系统存储爆满,服务无法正常访问。(服务中开启了最高日志级别debugger)。
????遇到了问题,那就想办法解决呗,百度了哈,最终找到了解决方案。在此做下记录。
日志分为两类,一类是Docker引擎日志;另一类是容器日志。
系统 | 日志位置 |
---|---|
Ubuntu(14.04) | /var/log/upstart/docker.log |
Ubuntu(16.04) | journalctl -u docker.service |
CentOS 7/RHEL 7/Fedora | journalctl -u docker.service |
CoreOS | journalctl -u docker.service |
OpenSuSE | journalctl -u docker.service |
OSX | ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/d??ocker.log |
Debian GNU/Linux 7 | /var/log/daemon.log |
Debian GNU/Linux 8 | journalctl -u docker.service |
Boot2Docker | /var/log/docker.log |
find /var/lib/docker/containers -name *.log
docker inspect --format=‘{{.LogPath}}‘ <container_name>
tail -f `docker inspect --format=‘{{.LogPath}}‘ <container_name>`
echo "======== docker containers logs file size ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
ls -lh $log
done
echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
echo "clean logs : $log"
cat /dev/null > $log
done
echo "======== end clean docker containers logs ========"
cat /dev/null > $log 表示将$log的文件内容清空
可通过 sh logs_file_size.sh 和 sh clean_containers_logs.sh 运行两个shell脚本。
参考文章:
https://wxnacy.com/2018/06/14/docker-log/
https://www.cnblogs.com/YatHo/p/7866029.html
https://www.choupangxia.com/2019/09/15/linux-centos-var-lib-docker-container
标签:EOS 脚本 drive 不同 container debian ls -l open done
原文地址:https://www.cnblogs.com/aliases/p/13232384.html