原文:docker容器日志管理(清理)


前言


在使用docker容器时候,其日志的管理是我们不得不考虑的事情。因为docker容器的日志文件会占据大量的磁盘空间。下面介绍的就是对docker容器日志的管理。



docker容器日志清理


docker容器的日志一般存放在/var/lib/docker/containers/下的container_id下,以json.log为结尾。

(每个容器会生成一个对应的container_id)


【1】查看所有docker容器日志的大小


find /var/lib/docker/containers/ -name *-json.log |xargs du -sh
  • 1



【2】清理Docker容器日志


docker容器运行时,使用rm的方式删除日志文件,是无用的,磁盘空间仍会被占用。

因为在Linux中,使用rm删除文件,只是从文件系统的目录结构上解除链接。如果有一个进程正在使用这个文件,进程将仍然可以读取该文件,磁盘空间也会一直被占用。

可以像处理tomcat的日志的方式对容器日志进行清空或切割。


<1>docker容器日志清理脚本(清理所有docker容器的日志)

clean_dockerlog.sh

#!/bin/sh 

logs=`find /var/lib/docker/containers/ -name *-json.log`  

for docker_log in $logs
do
echo " " > $docker_log
done
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11


<2>docker容器日志切割脚本(切割所有docker容器日志)

qie_dockerlog.sh

#!/bin/bash 

 logs=`find /var/lib/docker/containers/ -name *-json.log` 

for docker_log in $logs
do
y=`date "+%Y"`
m=`date "+%m"`
d=`date "+%d"`
cp $docker_log $docker_log/../`dockerlogs.$y_$m_$d`
echo " " > $docker_log
done
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

chmod +x /root/qie_dockerlog.sh
可以将脚本放入计划任务中,定期执行。
crontab -e
* * 3 * * /bin/bash /root/qie_dockerlog.sh
  • 1
  • 2
  • 3
  • 4


后记


实际上,对docker容器的日志及其他的管理,我们也可以使用docker compose来实现。它的优点是可以通过一个配置文件来管理多个Docker容器。这个由于内容比较多,就先放到以后再介绍了。

发布了187 篇原创文章 · 获赞 116 · 访问量 54万+

最新文章

  1. 数论 UVA 10791
  2. JavaScript严格模式详解
  3. 【POJ2949】Word Rings(最大平均值环)
  4. [转]UIApplicationDelegate分析小结
  5. Linux基础:软件安装(rpm,yum,源代码)
  6. 最长回文 HDU 3068 (裸的Manacher)
  7. Highcharts使用====一些问题记录
  8. Spring jdbc 对象Mapper的简单封装
  9. windows下一个,OracleServiceXXX和Oracle 关系实例
  10. show engine innodb status输出说明
  11. java中的时间类型
  12. 如何用css实现一个三角形?
  13. eclipse 项目中嵌入jetty
  14. Luogu2839 Middle 主席树、二分答案
  15. ZOJ 3690 Choosing number(矩阵)
  16. mac shell终端编辑命令行快捷键——行首,行尾
  17. 微信小程序中时间转化为时间戳(安卓和苹果兼容性)
  18. 利用Vagrant完成开发环境配置
  19. 组合数取模&amp;&amp;Lucas定理题集
  20. 20155216 2016-2017-2 《Java程序设计》第四周学习总结

热门文章

  1. anki的使用以及anki server的配置
  2. 在GitHub上使用Hexo 搭建自己的博客
  3. NIO Channel 管道
  4. [RoarCTF 2019]simple_uplod
  5. 【定制开发】经纪人报备软件 全民经纪人系统 房产中介微信小程序分享家恒房通
  6. semi-join子查询优化 -- Duplicate Weedout策略
  7. implement a list using Rust
  8. Amazon | OA 2019 | Optimal Utilization
  9. 【转】HTML meta标签总结与属性使用介绍
  10. 认领该应用 apk空白包签名 方法