最有效释放docker磁盘空间的方式是清理无用镜像和悬挂卷:先用docker image prune -f删 dangling 镜像,再用docker image prune -a -f删所有未被容器使用的镜像,接着用docker volume prune -f清理悬挂卷,最后可选docker system prune -a -f --volumes一键清理全部未用对象。

直接清理 Docker 无用镜像和悬挂卷,是释放磁盘空间最有效的方式之一。重点在于区分“未被任何容器使用的镜像”和“完全没标签、也没被引用的悬挂镜像(dangling images)”,同时别漏掉无人挂载的卷(dangling volumes)。
删掉所有悬挂镜像(dangling images)
这些是构建过程中产生的中间层,或重新打标签后旧的无名镜像,通常以 docker images 列表里。它们不占大空间但积少成多。
- 先查看:
docker images -f "dangling=true" - 一键删除:
docker image prune - 加
-f跳过确认:docker image prune -f
删掉所有未被容器使用的镜像(包括带名但闲置的)
仅删 dangling 镜像不够——那些有名字、没被任何运行或停止容器引用的镜像,也该清。比如你 pull 了多个版本又只用其中一个。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 先看哪些镜像没被用:
docker image ls --format "{{.Repository}}:{{.Tag}} {{.ID}}" | while read name id; do if ! docker container ls -a --format "{{.Image}}" | grep -q "^$name$"; then echo "$name → $id"; fi; done - 更稳妥做法:先删所有停止容器(避免误删正在用的镜像),再执行
docker image prune -a -f -
注意:
docker image prune -a会删掉所有未被任意容器(含已停止)引用的镜像,操作前建议先docker ps -a确认没有需要保留的旧容器
清理悬挂卷(dangling volumes)
卷(volume)不会随容器删除自动清理。当你删了容器但没删对应卷,或者创建后从未挂载使用,就变成 dangling volume,docker volume ls 中显示为
- 列出所有悬挂卷:
docker volume ls -f "dangling=true" - 删除它们:
docker volume prune(加-f可跳过提示) - 想看某个卷是否真没人用,可用
docker volume inspect <volume-name></volume-name>查Mountpoint和关联容器信息
顺手清理其他垃圾(可选但推荐)
镜像和卷只是磁盘大户,构建缓存、网络配置、构建器元数据也会悄悄占空间。
- 清理全部构建缓存(含 buildx):
docker builder prune -f - 清理所有未被使用的网络:
docker network prune -f - 一键清空所有未被使用的对象(镜像、卷、网络、构建缓存):
docker system prune -a -f --volumes(慎用,-a 会删所有未被容器引用的镜像)
清理完建议用 df -h 或 docker system df 对比前后空间变化。docker system df 能清晰看到镜像、卷、构建缓存各自占多少,方便定位下次该清什么。










