Docker容器日志查看与清理的方式

美国第三任总统(托马斯.杰弗逊)曾说过:“不要因为别的人相信或否定了什么东西,你也就去相信它或否定它。上帝赠予你一个用来判断真理和谬误的头脑。那你就去运用它吧!”。

在没有陪你奔跑的日子,努力加油哦!

发现

    正常使用docker部署测试环境程序,一直部署不上去。最后发现docker容器运行产生日志过多,导致了系统存储爆满,服务无法正常访问。(服务中开启了最高日志级别debugger)。

    遇到了问题,那就想办法解决呗,百度了哈,最终找到了解决方案。在此做下记录。

日志分类

日志分为两类,一类是Docker引擎日志;另一类是容器日志。

  • Docker引擎日志
    Docker引擎日志一般是交给了Upstart(Ubuntu14.04)或者systemd(CentOS 7,Ubuntu 16.04)。前者一般位于/var/log/upstart/docker.log下,后者一般通过 jounarlctl -u docker来读取。不同系统的位置都不一样,参考如下:
系统日志位置
Ubuntu(14.04)/var/log/upstart/docker.log
Ubuntu(16.04)journalctl -u docker.service
CentOS 7/RHEL 7/Fedorajournalctl -u docker.service
CoreOSjournalctl -u docker.service
OpenSuSEjournalctl -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 8journalctl -u docker.service
Boot2Docker/var/log/docker.log
  • Docker容器日志
    每个容器的日志默认都会以json-file的格式存储于/var/lib/docker/containers/<容器id>/<容器id>-json.log下。
  1. 查找全部容器的日志文件
find /var/lib/docker/containers -name *.log
  1. 查看日志位置
docker inspect --format='{{.LogPath}}' <container_name>
  1. 实时查询内容
tail -f `docker inspect --format='{{.LogPath}}' <container_name>`
  • 编写脚本查看、清理日志
         既然我们知道了怎么来查看docker产生的日志和文件的存储位置,那么就开始编写脚本吧。参考如下:
  1. 查看容器日志大小 — logs_file_size.sh
echo "======== docker containers logs file size ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
        do
             ls -lh $log
        done
  1. 清理日志 — clean_containers_logs.sh

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 > l o g 表 示 将 log 表示将 loglog的文件内容清空

可通过 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

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陆小叁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值