当前位置: 首页 > news >正文

DOCKER设置日志轮转

之前Ubuntu环境下docker方式部署的gitlab服务器,zabbix突然报告空间使用已超80%。查看后发现一个73G的大日志文件,位于/var/lib/docker/containers/ef5e0c55b57968eaf52ef9c9f5dca4142a1b6c2878dcb6eceee098568bb0d0c3/目录下。

该路径是Docker容器日志的标准路径,这个文件应该是GitLab的JSON日志文件。

使用`truncate`命令清空日志文件,暂时解决了空间告警问题,但日志还在不断生成。

为了避免以后再次出现日志过大的问题,打算配置Docker的日志轮转。

修改Docker的配置文件/etc/docker/daemon.json,添加日志驱动配置:

{

"log-driver": "json-file",

"log-opts": {

"max-size": "100m",

"max-file": "3"

}

}

这里设置每个日志文件最大100MB,最多保留3个文件(即总共最多300MB)。然后重启Docker服务:

#sudo systemctl restart docker

但是命令执行报错

Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xeu docker.service" for details.

执行journalctl -xeu docker.service,查看具体报错信息,发现

Aug 12 05:43:30 gitserver dockerd[1811208]: unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid character '"' after object key:value pair

检查daemon.json文件,新加的配置写在原有镜像配置之后

"registry-mirrors": [

]

在镜像列表后缺了个逗号" ,"

修改后保存,

重启Docker,服务重启成功。

#sudo systemctl daemon-reload

#sudo systemctl restart docker

第二天观察日志文件,发现已超过400M。

查看容器日志驱动配置,返回结果为空

# docker inspect gitlab --format '{{.HostConfig.LogConfig}}'

{json-file map[ ]}

表明DOCKER的配置在容器中未生效。

打算重建容器看下效果

#docker compose down

#docker compose up -d

再次查看容器日志驱动配置,返回结果正常了。

# docker inspect gitlab --format '{{.HostConfig.LogConfig}}'

{json-file map[max-file:3 max-size:100m]}

在随后的观察中,日志文件达到100M就会生成第二个文件,第三个文件也达到100M后,会覆盖第一个文件,日志轮转配置成功。

总结:修改docker配置文件后,不能仅重启docker服务,还要重建容器才能使配置生效。

http://www.lryc.cn/news/620607.html

相关文章:

  • 爬虫逆向之滑块验证码加密分析(轨迹和坐标)
  • Redis 03 redis 缓存异常
  • 嵌入式学习笔记--MCU阶段--DAY12实时操作系统rt_thread1
  • C语言零基础第16讲:内存函数
  • 华为实验WLAN 基础配置随练
  • 【奔跑吧!Linux 内核(第二版)】第6章:简单的字符设备驱动(三)
  • 使用AI编程自动实现自动化操作
  • 考研408《计算机组成原理》复习笔记,第三章(6)——Cache(超级重点!!!)
  • [免费]基于Python的影视数据可视化分析系统(Flask+echarts)【论文+源码+SQL脚本】
  • 财务自动化软件敏感数据泄露风险评估与防护措施
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘arviz’问题
  • Flutter 顶部导航标签组件Tab + TabBar + TabController
  • Polyak-Ruppert 平均
  • 第四天~什么是ARXML?
  • Eureka故障处理大汇总
  • Java研学-RabbitMQ(八)
  • 李沐-第六章-LeNet训练中的pycharm jupyter-notebook Animator类的显示问题
  • 【LeetCode 热题 100】295. 数据流的中位数——最大堆和最小堆
  • 基于Django的福建省旅游数据分析与可视化系统【城市可换】
  • AI 编程实践:用 Trae 快速开发 HTML 贪吃蛇游戏
  • 【经验分享】如何在Vscode的Jupyter Notebook中设置默认显示行号
  • vscode的wsl环境,ESP32驱动0.96寸oled屏幕
  • 【面板数据】各省及市省级非物质文化遗产数据合集(2005-2024年)
  • 【JavaEE】多线程 -- 初识线程
  • Java应用快速部署Tomcat指南
  • **超融合架构中的发散创新:探索现代编程语言的挑战与机遇**一、引言随着数字化时代的快速发展,超融合架构已成为IT领域的一种重要趋势
  • ts概念讲解
  • 网络原理-HTTP
  • 一致性哈希Consistent Hashing
  • 【代码随想录day 20】 力扣 669. 修剪二叉搜索树