问题已经很明显了:
text
/dev/mapper/ubuntu--vg-ubuntu--lv 98G 92G 1.3G 99% /
根分区只剩:
text
1.3G
TDengine 写时序数据很容易瞬间打满。
所以报:
text
No enough disk space
并且你这里:
text
/var/lib/docker/rootfs/overlayfs/*
大量 overlay 99%。
说明:
Docker 占了大量空间
先查 Docker 到底占多少
执行:
bash
docker system df
重点看:
- Images
- Containers
- Local Volumes
再查真正的大目录
这是关键:
bash
du -xh /var | sort -hr | head -20
以及:
bash
du -xh /var/lib/docker | sort -hr | head -20
高概率问题(90%)
通常是:
1. Docker 容器日志爆了
查看:
bash
du -sh /var/lib/docker/containers/*
如果看到:
text
20G
40G
60G
基本就是日志。
立即释放空间(最有效)
清空 Docker 日志
执行:
bash
find /var/lib/docker/containers/ -name "*-json.log" -exec truncate -s 0 {} \;
通常:
text
几秒释放几十 GB
然后马上做
删除无用镜像
bash
docker image prune -a
删除停止容器
bash
docker container prune
删除无用 volume
bash
docker volume prune
一键清理(危险但有效)
bash
docker system prune -a --volumes
注意:
会删除:
- 未使用镜像
- 停止容器
- 无用 volume
然后检查 TDengine 数据目录
看看是不是它本身占用:
bash
du -sh /var/lib/taos
如果几十 G:
需要:
- 降低保留时间
- 删除历史库
- 调整 KEEP
非常重要:限制 Docker 日志大小
否则还会爆。
编辑:
text
/etc/docker/daemon.json
加入:
json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
然后:
bash
systemctl restart docker
你的系统现在属于
text
危险状态
因为:
text
剩余只有 1.3G
Linux:
- journal
- overlayfs
- sqlite
- docker
- tdengine WAL
都可能瞬间写爆。
建议你现在立刻执行
第一步(马上释放空间)
bash
find /var/lib/docker/containers/ -name "*-json.log" -exec truncate -s 0 {} \;
第二步
bash
docker system df
第三步
bash
du -xh /var/lib/docker | sort -hr | head
把结果发我,我可以直接帮你定位到底:
- 日志
- image
- volume
- overlay2
- tdengine data
哪个爆了。