如何查看指定Docker容器的绑定挂载(bind mounts)?
查看Docker容器绑定挂载的方法
一、查看指定容器的绑定挂载
常用两种方式:
使用
docker inspect命令(最精准的方法):
执行命令:docker inspect <容器名或容器ID>在输出的JSON结构里找到
Mounts数组,其中Type为bind的条目就是绑定挂载,里面包含Source(宿主机路径)、Destination(容器内路径)、Mode(挂载权限)等关键信息。可以用工具简化输出,比如用
jq只提取挂载部分:docker inspect <容器名或容器ID> | jq '.[].Mounts'没有
jq的话,也能用grep过滤:docker inspect <容器名或容器ID> | grep -A 10 -B 2 '"Type": "bind"'使用
docker ps快速扫瞄:
执行带完整输出的命令:docker ps -a --no-trunc输出的
COMMAND列之后会显示挂载信息,绑定挂载以宿主机绝对路径:容器内路径的格式呈现,适合快速查看。
二、是否有类似docker volume ls的命令查看绑定挂载
没有专门的命令。因为绑定挂载是直接映射宿主机的文件路径,不属于Docker官方管理的「命名卷」范畴,Docker不会统一记录所有容器的绑定挂载信息。
如果需要批量查看所有容器的绑定挂载,可以用简单脚本实现,比如:
for container_id in $(docker ps -q); do container_name=$(docker inspect --format '{{.Name}}' $container_id | sed 's/^\///') echo "容器名称: $container_name" docker inspect --format '{{range .Mounts}}{{if eq .Type "bind"}}- 宿主机路径: {{.Source}} → 容器内路径: {{.Destination}}{{end}}{{end}}' $container_id echo "" done
内容的提问来源于stack exchange,提问作者Rob Bednark
相关产品推荐
相关产品推荐

