Docker 占用了 Mac 的空间?缩小它的方法

Docker Desktop 把所有镜像、容器、卷和构建缓存都放在一个大的磁盘映像里。它会悄悄变大,下面教你查看它的实际用量并拿回空间。

Docker 的空间去了哪里

在 Mac 上,Docker 在轻量级虚拟机中运行 Linux。其中的所有内容都存放在一个文件里,通常是 ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw。

它是稀疏文件:访达可能显示其最大大小(例如 64 GB),而它实际占用的要少得多。要查看真实大小,请在终端中对它运行 du -h,或使用 DiskGarden 扫描,它会统计文件在磁盘上实际占用的空间。

查看占用情况

运行 docker system df,可查看镜像、容器、本地卷和构建缓存各占多少,以及各自有多少可以回收。

回收空间

  • docker system prune 会移除已停止的容器、未使用的网络、悬空镜像和未使用的构建缓存。
  • docker system prune -a 还会移除所有未被容器使用的镜像,需要时再重新下载即可。
  • docker builder prune 只清除构建缓存,对经常构建镜像的人来说,这往往是最大的一部分。
  • docker volume prune 会移除未使用的卷。注意:卷中保存着本地数据库等数据,请确认你不再需要。

Docker Desktop 会自动把释放的空间还给 macOS,不过文件缩小可能需要一点时间。

限制它的最大容量

在 Docker Desktop 中,打开设置 → 资源并降低虚拟磁盘上限。Docker 不会超出该上限(降低上限可能需要重置 Docker 的数据,因此请先执行 prune)。

作为最后的手段,Troubleshoot → Clean / Purge data 会删除 Docker 存储的所有内容并重新开始。

其他虚拟机

Parallels、UTM、VMware Fusion 等 App 也会把每个虚拟机保存为一个大文件或宗卷包。请在 App 内部删除你不再使用的虚拟机。所有这些都会显示在 macOS 的系统数据中。

看看你的空间去了哪里

DiskGarden 是一款免费的 Mac 磁盘空间分析工具:按大小映射每个文件夹,让占空间的“大户”一目了然。无需账户,你的文件绝不会离开 Mac。

下载 DiskGarden — 免费