如何查找Docker Volume所属的容器并查询其占用的存储空间大小
查看Docker卷关联容器
你通过docker volume inspect无法获取关联信息,是因为该命令本身不返回关联容器字段,你可以通过容器维度反向查询:
- 查询单个指定卷的关联容器(包含已停止的容器):
docker ps -a --filter volume=<替换为你的卷名/卷ID>
如果该命令无返回结果,说明该卷当前没有关联任何容器,属于孤儿卷。
- 批量查询所有卷的关联容器:
docker volume ls -q | xargs -I {} sh -c 'echo -e "卷名:{} \n关联容器:$(docker ps -a --filter volume={} --format "{{.Names}} (ID:{{.ID}})")\n"'
查看Docker卷实际占用空间
- 查看单个卷的占用大小:
# 方法1:通过Docker系统命令查看 docker system df -v | grep <替换为你的卷名> # 方法2:直接统计卷挂载目录的实际大小(更准确) docker volume inspect <替换为你的卷名> --format '{{.Mountpoint}}' | xargs sudo du -sh
- 查看所有卷的总占用、可回收空间:
docker system df
输出结果中VOLUMES行的RECLAIMABLE字段就是当前可安全清理的孤儿卷总大小。
安全清理注意事项
仅没有关联任何容器的孤儿卷可以安全清理,不建议直接手动删除/var/lib/docker/volumes下的目录,推荐使用Docker官方清理命令:
- 先预览待清理的孤儿卷列表,确认没有重要数据:
docker volume prune --dry-run
- 确认无误后执行清理:
# 清理所有无关联的卷 docker volume prune # 仅清理创建超过30天的无关联卷,避免误删近期创建的备用卷 docker volume prune --filter "until=720h"
docker volume prune只会清理没有任何容器关联的卷,不会影响正在被使用的卷,无需担心误删运行中容器的挂载卷。
内容的提问来源于stack exchange,提问作者HubertNNN
相关产品推荐
相关产品推荐

