最近查看docker日志的时候,使用命令docker log -f 会出现日志无限翻滚的情况,这些日志都是打印到控制台的,但是都被docker收集了起来,放到了/var/lib/docker/containers/{容器id}/*.log中,一般默认的日志格式是{容器id}-json.log,如果日志大小不加限制,很可能日志会无限增长最终撑爆磁盘。

首先先用命令查看下日志大小情况

find /var/lib/docker/containers  -name '*.log'  -exec ls -lh {} \;

可以看到,日志文件都不大。。咳咳

限制日志文件的大小方式有挺多种

一、治标:清空日志文件

使用以下命令直接情况日志文件

#!/bin/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 ========"

二、治本:设置Docker容器日志大小

1.设置docker运行时日志上限

nginx:
image: nginx:1.12.1
restart: always
logging:
driver: "json-file"
options:
max-size: "5g"

重启docker服务后生效

2.全局设置

修改/etc/docker/daemon.json 文件,添加log-dirver和log-opts参数

{
"registry-mirrors": ["http://f613ce8f.m.daocloud.io"],
"log-driver":"json-file",
"log-opts": {"max-size":"500m", "max-file":"3"}
}

daemon.json配置文件的详细配置文档链接:https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file

这个则需要重启docker后生效

service docker restart

三、参考文档

https://blog.csdn.net/yjk13703623757/article/details/80283729

最新文章

  1. iOS开发——创建你自己的Framework
  2. Servlet中的常用类以及常用方法
  3. offer
  4. 说一说vector<bool>
  5. 使用本地JConsole监控远程JVM (转)
  6. Composite(组合)--对象结构型模式
  7. 使用javap反编译class文件
  8. corefile的设置与使用
  9. FastJSON应用前测试--转载
  10. js字面量
  11. [DP优化方法之斜率DP]
  12. [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  13. Java缓存类的实际应用场景
  14. XML的几种转换
  15. configEnvironment()源码探究
  16. UE4 C++ 笔记
  17. Java 8 新特性:2-消费者(Consumer)接口
  18. 转://Oracle数据库补丁分析实践
  19. [UE4]GameInstance初始化
  20. ubuntu journalctl — 检索 systemd 日志

热门文章

  1. 理解ASP.NET Core 中的WebSocket
  2. 40. 组合总和 II + 递归 + 回溯 + 记录路径
  3. pytorch(01)环境配置及安装
  4. Java 查找算法
  5. rest-framework routers
  6. WPF 应用 - 通过 js 缩放 System.Windows.Controls.WebBrowser 的内容
  7. 制作API离线chm帮助文件教程
  8. 【linux】驱动-2-内核模块
  9. 详解 ZooKeeper 数据持久化
  10. java例题_42 求满足809*??=800*??+9*??+1的??的值