惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Forbes - Security
Forbes - Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
F
Fortinet All Blogs
B
Blog
T
The Blog of Author Tim Ferriss
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
Y
Y Combinator Blog
Microsoft Azure Blog
Microsoft Azure Blog
L
LangChain Blog
Recent Announcements
Recent Announcements
U
Unit 42
Martin Fowler
Martin Fowler
M
MIT News - Artificial intelligence
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The Register - Security
The Register - Security
Recorded Future
Recorded Future
C
Check Point Blog
V
V2EX
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
Google DeepMind News
Google DeepMind News
酷 壳 – CoolShell
酷 壳 – CoolShell
F
Full Disclosure
小众软件
小众软件
A
About on SuperTechFans
云风的 BLOG
云风的 BLOG
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI
有赞技术团队
有赞技术团队
MongoDB | Blog
MongoDB | Blog
爱范儿
爱范儿
P
Proofpoint News Feed
罗磊的独立博客
量子位
D
Docker
博客园_首页
D
DataBreaches.Net
Project Zero
Project Zero
博客园 - 司徒正美
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - Franky
Security Latest
Security Latest
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
N
Netflix TechBlog - Medium
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 三生石上(FineUI控件)
H
Hackread – Cybersecurity News, Data Breaches, AI and More
大猫的无限游戏
大猫的无限游戏

阿猫的博客

猫鱼周刊 vol. 098 川西之行 猫鱼周刊 vol. 098 川西之行 使用 Hermes 在飞书打造 AI Agent 团队 猫鱼周刊 vol. 097 五一快乐 猫鱼周刊 vol. 096 AI 无法取代胶片 猫鱼周刊 vol. 095 谨防赛博夺舍 把 SSH 私钥放进 YubiKey:一套更安全、可迁移的密钥管理方案 猫鱼周刊 vol. 094 龙虾大跃进 2136 年,人类发明了超光速引擎 猫鱼周刊 vol. 093 马年快乐 带 Mermaid 的 Markdown 转 docx 猫鱼周刊 vol. 092 AI 的贴吧 猫鱼周刊 vol. 091 2026 新年快乐 PVE 使用 LXC 部署 Miloco 猫鱼周刊 vol. 090 向大佬学习 猫鱼周刊 vol. 089 Vibe Engineering 猫鱼周刊 vol. 088 两个 Linus 的史诗级会面 猫鱼周刊 vol. 087 做一个 RSS 阅读器 猫鱼周刊 vol. 086 走出迷茫 猫鱼周刊 vol. 085 标签页焦虑 猫鱼周刊 vol. 084 骑友巴士 猫鱼周刊 vol. 083 扫街友好城市 FFmpeg 硬件加速小记 猫鱼周刊 vol. 082 AI 遗忘国耻
Docker 服务器磁盘满排查思路
2025-11-11 · via 阿猫的博客

最近博客频繁出现不可访问的问题,但因为最近没怎么在写文章,所以倒没怎么管,直到收到博友圈发来的邮件:

登上去一看,发现服务器的磁盘居然满了(之前出现过内存满的情况,重启一下 Halo 的服务就能解决)。因为这台机器上都是用 Docker/Docker Compose 启动的服务,所以自然只需要去考虑 Docker 的问题。

当然,在这之前也是先用 df -h 看了一下,全都指向 /var/lib/docker/overlay2/xxxoverlay 这样的东西,所以能确定是 Docker 的问题。如果占用大的在其他目录,那就稍微复杂一点,可以用 du -h --max-depth=1 一点点去排查。

overlay          79G   57G   20G  75% /var/lib/docker/overlay2/89ed74e70d3e59b7c5de6e53522eece539a74e013c9c03c76fc7ac4d73045ed7/merged

其实到这里我就懵逼了,这些服务都没什么会落盘的,不应该一下产生很大的数据才是,所以找了 AI 帮忙,它建议我先运行:

docker system df -v

这里提醒了我两个问题,一个是我有很多镜像没有清理,二是有些卷没有清理,于是先执行了下面两条命令,先释放一点空间。这两条命令都只会清除没有使用的镜像和卷,所以是比较安全的。这一步清理掉了几个 G,但是磁盘还是很满。

docker image prune -a
docker volume prune

于是让 AI 帮忙写了个脚本,查一下到底是哪个容器的卷占用空间大:

echo "VOLUME_NAME                              SIZE       CONTAINER(S)" && docker volume ls -q | while read vol; do size=$(docker volume inspect $vol --format '{{.Mountpoint}}' | xargs du -sh 2>/dev/null | cut -f1); containers=$(docker ps -a --filter volume=$vol --format '{{.Names}}' | tr '\n' ',' | sed 's/,$//'); [ -z "$containers" ] && containers="<unused>"; printf "%-40s %-10s %s\n" "$vol" "$size" "$containers"; done

最终找出来是 Halo 的容器。AI 建议我先考虑是容器日志的问题,用下面一条命令发现确实,于是又重启了一下容器,果然空间就被释放了。

find /var/lib/docker/containers/ -name "*.log" -exec ls -lh {} \; | sort -k5 -hr | head -10

但是这个方法治标不治本,它还顺便给我提出了限制日志大小的方法:

Docker

# 启动时添加日志选项
docker run -d \
  --log-opt max-size=100m \
  --log-opt max-file=3 \
  [其他原有参数...]

Docker Compose

version: '3'
services:
  your-service:
    image: your-image
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "3"

全局设置(针对所有新容器生效)

# 编辑 /etc/docker/daemon.json
cat > /etc/docker/daemon.json <<EOF
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}
EOF

# 重启 Docker
systemctl restart docker

至此,这次磁盘爆满的问题就解决了。

番外

因为 Halo 老是出现 OOM,所以其实这次日志把磁盘写爆是因为 Halo 的问题。一看有一个新版本 Release,说是解决了潜在的内存泄漏问题,更新完好像就再没出现 OOM 的问题了。

我在关于页面里说过,选择 Halo 是因为它丰富的插件生态,完善的主题,还可以的性能,以及部署和发布的便利,现在我倒有了一些微词:

  • 专业版发布之后,不能再付费购买插件,必须购买专业版(现在也不能买断了,只能订阅)
  • 性能方面真的一塌糊涂,Java 的技术栈导致一个博客就吃掉了 0.5 G 的内存(之前有问题的时候甚至飙到了 1G+),这对内存寸土寸金的服务器来说简直是噩梦
  • 版本发布后经常有严重的恶性 bug,这完全不像是一个开源转商业项目该有的稳定性
  • 很多插件经常一连几个月都不维护,一般主程序改了点什么才会顺带维护一下;新出的插件也不怎么感兴趣,有点花里胡哨的

最近也看了不少设计优秀的独立博客,自由度高很多,也更方便发挥,更多东西可以折腾,再做一个自己的博客的念头也慢慢浮现,也许呢。