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

服务器磁盘空间被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.lryc.cn/news/2404245.html

相关文章:

  • c++学习-this指针
  • 交易所系统攻坚:高并发撮合引擎与合规化金融架构设计
  • OpenCV计算机视觉实战(10)——形态学操作详解
  • libiec61850 mms协议异步模式
  • [论文阅读] 人工智能 | 利用负信号蒸馏:用REDI框架提升LLM推理能力
  • 基于 NXP + FPGA+Debian 高可靠性工业控制器解决方案
  • CSS 选择器全解析:分组选择器/嵌套选择器,从基础到高级
  • uniapp 对接腾讯云IM群公告功能
  • 垂起固定翼无人机应用及技术分析
  • Python Robot Framework【自动化测试框架】简介
  • vite配置@别名,以及如何让IDE智能提示路经
  • c#bitconverter操作,不同变量类型转byte数组
  • 【Linux】LInux下第一个程序:进度条
  • RPA+AI:自动化办公机器人开发指南
  • daz3d + PBRSkin (MDL)+ SSS
  • 计算矩阵A和B的乘积
  • Houdini POP入门学习05 - 物理属性
  • 每日Prompt:双重曝光
  • sendDefaultImpl call timeout(rocketmq)
  • 【LLM】多智能体系统 Why Do Multi-Agent LLM Systems Fail?
  • CSS 定位:原理 + 场景 + 示例全解析
  • 如何在没有 iTunes 的情况下备份 iPhone
  • 如何把 Mac Finder 用得更顺手?——高效文件管理定制指南
  • 赋能大型语言模型与外部世界交互——函数调用的崛起
  • 04 Deep learning神经网络编程基础 梯度下降 --吴恩达
  • 手拉手处理RuoYi脚手架常见文问题
  • 录制mp4
  • Dynamics 365 Finance + Power Automate 自动化凭证审核
  • 使用 Python + SQLAlchemy 创建知识库数据库(SQLite)—— 构建本地知识库系统的基础《一》
  • 使用柏林噪声生成随机地图