misonoteApp Center

Mac 上 Docker 占用空间太大怎么办?镜像和构建缓存清理

删前看一眼可能还有用的数据;Thermo 默认移到废纸篓,后悔还能找回。

位置

这一项没有固定的文件夹,需要在程序自己里面清理。

这是什么

在 Mac 上,Docker 运行在一台轻量虚拟机里。你拉取的镜像、创建的容器、数据卷以及 BuildKit 构建缓存,全都存在这台虚拟机的一个磁盘镜像文件中,而不是散落在 Mac 的文件系统里。

为什么会这么大

每拉一个镜像、每改一次 Dockerfile 重新构建,都会留下新的镜像层和构建缓存;停止的容器、无名的悬空镜像和不再使用的数据卷默认不会自动删除。

能删吗?删了会怎样

需要你确认,而且不能通过删除文件来清理:直接删掉 Docker 的磁盘镜像会一次性丢失所有镜像、容器和数据卷,包括数据库容器里的数据。正确做法是先用 Docker 的磁盘占用命令看看空间花在哪里,再用 prune 系列命令清理停止的容器、悬空镜像和构建缓存。清理数据卷前务必确认里面没有需要保留的数据。

小提示

Docker Desktop 设置的 Resources 页面可以调整磁盘镜像的大小上限;另外这个磁盘镜像是稀疏文件,Finder 显示的大小可能比实际占用大。

用它自带的命令清理

docker system df
docker system prune