macos docker使用磁盘空间不够?3招清理技巧省出20GB,macOS Docker磁盘空间不足?三步轻松释放20GB空间
同事的MacBook Pro用了半年Docker,硬盘愣是被吃掉120GB!删项目删照片都不顶用,最后重装系统才救回来😤——Docker悄咪咪占空间的毛病,坑过多少程序员? 今天教你3招根治,不删文件也能省出20GB!
💾 Docker偷空间的3大黑洞
镜像越堆越多,还不让删?
拉个Ubuntu镜像就1.3GB,MySQL再占500MB... 更坑的是,旧版本镜像默认不自动清理!用
docker images
一看,几十个镜像吃光一半硬盘。日志文件疯狂膨胀
容器日志默认存在
~/Library/Containers/com.docker.docker
里。有个哥们跑了半年Elasticsearch,日志直接飙到70GB,系统盘直接红了!缓存和卷的隐藏陷阱
Docker的构建缓存、临时卷,甚至
docker build
的中间层——全在后台偷偷占地儿。有个项目编译镜像时,光缓存就攒了15GB垃圾文件!
血泪公式:Docker空间 = 镜像仓库 + 日志坟场 + 缓存黑洞
🧹 救命3招:清出20GB实操指南
✅ 第一招:精准删除镜像(省5-10GB)
别再用docker rmi
手动删了! 用这俩命令扫荡冗余镜像:
bash复制# 删掉所有悬空镜像(无名无tag的) docker image prune -f# 删掉超过3个月的旧镜像 docker image prune -a --filter "until=720h"
实测效果:某前端项目清出8.4GB,比手动删快10倍!
✅ 第二招:日志限流术(省10GB+)
根治日志膨胀,两步搞定:
限制单个日志大小
在
~/.docker/daemon.json
里加配置(没有就新建):json复制
{"log-driver": "json-file","log-opts": {"max-size": "10m", // 单个日志最大10MB "max-file": "3" // 只保留3份 }}
一键清空现有日志
bash复制
sudo sh -c "truncate -s 0 /var/lib/docker/containers/*/*-json.log"
注意:清空前停掉Docker,否则日志可能继续写!
✅ 第三招:缓存核弹(省5GB)
Docker BuildKit的缓存才是空间杀手!用这个命令连根拔起:
bash复制docker builder prune --all --force
某Python项目清理后,.cache
文件夹从7GB→200MB,堪比魔法!
⚠️ 这些操作=作 *** !
直接删/var/lib/docker文件夹:导致镜像全丢失,容器全崩溃!
用CleanMyMac清Docker:误删核心文件,重装都救不回来。
放任磁盘满90%:Docker自动 *** ,容器集体卡 *** !
避坑口诀:清理用Docker自带工具,空间低于85%就动手!
💡 玄学冷知识:空间去哪了?
虽然用docker system df
能看空间占用,但“其他磁盘用量” 这栏永远算不准!
有次我清完缓存,显示省了10GB,结果硬盘只腾出3GB——剩下7GB或许暗示被系统Time Machine或Docker虚拟机快照吞了,具体机制至今没搞懂...
不过话说回来,M1芯片的Mac更邪门:Docker的ARM镜像体积比Intel小30%,但缓存反而更占地方!
🚨 终极建议:预防>抢救
把这三行写进~/.zshrc
,每周自动清一次:
bash复制# 周一早上9点自动清理 0 9 * * 1 docker image prune -f && docker builder prune --all --force
硬核玩家再加条:
bash复制# 每次退出终端时清日志 trap "docker system prune -f --volumes" EXIT
记住:Docker不是貔貅,只进不出早晚崩盘!