Docker Volume 使用查询:快速查看卷被哪些容器挂载
在 Docker 中,有时需要知道一个 Volume 被哪些容器使用。下面提供一个简单的一行命令,可以快速查到关联容器。
查找占用空间大的卷
根目录执行
du -Sh | sort -rh | head -n 20
命令示例
假设卷名是 mydata
:
docker ps -a --format '{{.ID}} {{.Names}}' | while read cid cname; do
if docker inspect $cid | grep -q "\"Name\": \"mydata\""; then
echo "容器 $cname ($cid) 正在使用该卷"
fi
done
使用方法
- 将命令复制到终端执行。
- 将
mydata
替换为你要查询的卷名。 - 输出示例:
容器 webapp (b3f1d2a9e2a1) 正在使用该卷
容器 db (e9f2a7d6b1c4) 正在使用该卷
命令说明
docker ps -a --format '{{.ID}} {{.Names}}'
- 列出所有容器的 ID 和名称。
while read cid cname; do ... done
- 遍历每个容器,逐个检查是否挂载指定卷。
docker inspect $cid | grep -q "\"Name\": \"mydata\""
- 在容器挂载信息中搜索是否使用了目标卷。
echo "容器 $cname ($cid) 正在使用该卷"
- 找到后输出容器名称和 ID,快速定位。