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

服务器磁盘空间被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)读取该文件,会导致读取中断

相关文章:

  • 青少年编程与数学 01-011 系统软件简介 05 macOS操作系统
  • 基于IDIG-GAN的小样本电机轴承故障诊断
  • Mac下Android Studio扫描根目录卡死问题记录
  • WebRTC 与 WebSocket 的关联关系
  • 代码安全规范1.1
  • QuaggaJS用法详解
  • elasticsearch基本操作笔记
  • Ubuntu 基于sdl 音频学习的基础代码
  • WebRTC源码线程-1
  • 天机学堂(学习计划和进度)
  • react public/index.html文件使用env里面的变量
  • 〈软件安装管家软件目录〉▷Windows系统版
  • 基于cornerstone3D的dicom影像浏览器 第二十九章 自定义菜单组件
  • 安装VUE客户端@vue/cli报错警告npm WARN deprecated解决方法 无法将“vue”项识别为 cmdlet、函数
  • 机器学习框架PyTorch
  • 装饰模式(Decorator Pattern)重构java邮件发奖系统实战
  • 知识图谱技术概述
  • RetroMAE 预训练任务
  • ant-design4.xx实现数字输入框; 某些输入法数字需要连续输入两次才显示
  • JS实现OSS断点续传
  • 网站建设报价清单明细/深圳搜索优化排名
  • 铜陵app网站做招聘/优化网站
  • 网站和微网站/竞价广告是怎么推广的
  • ai做网站 如何切图/黄页网站推广公司
  • 宁波网站推广外包服务/百度seo白皮书
  • 静态网站开发项目实验报告/怎么开网站平台