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

服务器磁盘空间被Docker容器日志占满处理方法

事发场景:

原本正常的服务停止运行了,查看时MQTT服务链接失败,查看对应的容器服务发现是EMQX镜像停止运行了,重启也是也报错无法正常运行,报错如下图:

报错日志中连续出现两个"no space left on device"的报错,这是典型磁盘写满的症状。从报错路径看,EMQX试图在/opt/emqx/data/configs目录下写配置文件失败。

  • 原因:EMQX 无法生成配置文件,因为磁盘已满。

查看磁盘空间,已被占满。

 发现是Docker的日志文件占满的,

1. 清理 Docker 无用数据

# 强制清理所有无用资源(包含未使用的镜像、容器、网络、构建缓存等)
docker system prune -a -f --volumes# 单独清理悬空镜像(二次确认)
docker rmi $(docker images -f "dangling=true" -q)

2. 清理大日志文件

# 查找所有容器日志文件(显示大于100MB的)
find /mnt/sdc/docker_data/containers/ -name "*.log" -size +100M -ls# 清空大日志文件(不删除文件)
sudo truncate -s 0 /mnt/sdc/docker_data/containers/*/*-json.log

执行sudo truncate -s 0 /mnt/sdc/docker_data/containers/*/*-json.log命令之后,空间就释放了,后面就恢复正常了,

执行 sudo truncate -s 0 /mnt/sdc/docker_data/containers/*/*-json.log 不会直接影响正在运行的容器进程,但需注意以下关键点:

影响维度说明
容器运行状态✅ 不会停止或重启容器(仅清空日志文件,不干扰容器主进程)
已输出的日志❌ 会永久删除当前日志内容(但新日志仍会正常写入)
日志依赖服务⚠️ 若容器进程正通过 tail -f 或日志采集工具(如Fluentd)读取该文件,会导致读取中断
http://www.xdnf.cn/news/12377.html

相关文章:

  • 交易所系统攻坚:高并发撮合引擎与合规化金融架构设计
  • Android 之 kotlin 语言学习笔记四(Android KTX)
  • 彻底解决 MFC 自绘控件闪烁
  • 遥感与GIS在滑坡、泥石流风险普查中的实践技术应用
  • Web 架构之缓存策略实战:从本地缓存到分布式缓存
  • LeetCode 128. 最长连续序列
  • Flink checkpoint
  • MiniExcel模板填充Excel导出
  • AndroidR车机TextToSpeech音频焦点异常问题分析
  • 搭建前后端分离项目
  • 云服务器宕机或自动重启怎么办
  • DeepSeek提示词撰写心得
  • 什么是零拷贝?
  • ubuntu屏幕复制
  • 简易EPOLL模型
  • 【地址区间划分】
  • 009-libb64 迅速上手 libb64 -C++开源库108杰
  • jar包如何引入
  • 汇川变频器MD600S-4T-5R5为什么要搭配GRJ9000S-10-T滤波器?
  • 使用 CMAKE_DEBUG_TARGET_PROPERTIES调试目标属性
  • ml307 二次开发
  • 阶段技术问答题目
  • 执行什么命令可以让内存使用率达到80%
  • STM32寄存器访问位宽确实存在16位和32位的混合情况但地址上一定要4字节对齐
  • 智慧照明:集中控制器、单双灯控制器与智慧灯杆网关的高效协同
  • 轻松掌控硬件接口:LuatIO可视化工具,物联网开发的“效率加速器”!
  • PS如何傻瓜式扣图、图片编辑、图片合成
  • 2025.5.28【33OJ NOI 模拟赛 T3】字符串(AC自动机, 字符串后缀结构)
  • [蓝桥杯]耐摔指数
  • World of Warcraft [Vault of Archavon][Reins of the Grand Black War Mammoth]