Mac上Docker磁盘空间骤减主因是未清理镜像、停止容器及可写层;可通过五步清理:一、docker system prune -a全局安全清理;二、分项执行container prune、image prune、volume prune、network prune;三、强制删除全部容器与镜像;四、预检dangling镜像、exited容器、dangling卷再操作;五、专项清理Buildx构建缓存docker builder prune。

如果您在Mac上开发时发现磁盘空间急剧减少,而Docker Desktop显示存储使用量持续攀升,则很可能是未清理的镜像、停止的容器及其关联的可写层在后台持续占用空间。以下是针对性清理镜像和容器的具体操作路径:
一、执行全局安全清理
该方法通过内置的系统级清理命令一次性移除所有未被当前运行容器引用的镜像、已停止容器、未使用网络及构建缓存,同时保留正在运行的容器与被引用的基础镜像,兼顾效率与安全性。
1、打开终端应用。
2、输入并执行:docker system prune -a。
3、当提示“WARNING! This will remove…”时,键入 y 确认执行。
4、等待命令完成,终端将显示释放的空间大小(例如 “Total reclaimed space: 4.23GB”)。
二、分项精准清理
该方法适用于需保留特定资源、或全局清理后仍有残留占用的场景,可分别控制镜像、容器、卷、网络的删除粒度,避免误删关键开发环境依赖。
1、清理所有已停止的容器:docker container prune。
2、清理所有悬挂(dangling)镜像(即无标签且未被任何容器使用的中间层镜像):docker image prune。
3、清理所有未被任何容器挂载的数据卷:docker volume prune。
4、清理所有未被容器使用的自定义网络:docker network prune。
三、强制批量删除全部镜像与容器
该方法适用于彻底重置本地Docker环境,如调试失败后需完全清空所有构建产物,或准备移交设备前清除全部开发痕迹;执行前请确保无须保留任何本地镜像或容器状态。
1、停止所有正在运行的容器:docker stop $(docker ps -q)。
2、删除所有容器(含已停止):docker rm $(docker ps -a -q)。
3、删除所有镜像(含被引用的):docker rmi -f $(docker images -q)。
4、执行后再次运行 docker images 与 docker ps -a,应返回空列表。
四、预检待删项再操作
该方法用于在执行高风险清理前明确识别目标对象,防止因命名模糊或ID混淆导致误删生产相关镜像或调试中容器,尤其适用于团队共享Mac或存在多项目镜像共存的开发场景。
1、列出所有悬挂镜像:docker images -f dangling=true。
2、列出所有已停止容器:docker ps -a --filter status=exited --format "{{.ID}} {{.Names}} {{.Status}}"。
3、列出所有未被挂载的卷:docker volume ls -f dangling=true。
4、对输出结果中确认无用的条目,逐条执行 docker rmi [IMAGE_ID] 或 docker rm [CONTAINER_ID]。
五、清理Buildx构建缓存
该方法专门针对启用Buildx多平台构建的项目,其缓存独立于传统docker builder,不被 docker system prune 覆盖,长期积累可达数GB,是Mac上Docker磁盘异常膨胀的常见隐藏原因。
1、检查Buildx缓存占用:docker builder du -v。
2、清理所有Buildx构建器缓存:docker builder prune。
3、若使用自定义builder实例,先执行 docker buildx use default 再运行prune命令。



















