最可靠的方式是用 docker inspect 查看 mounts 字段中的 source 值:绑定挂载直接显示宿主机绝对路径,volume 类型需通过 docker volume inspect 获取 mountpoint;windows/macos 路径需注意 wsl2 或虚拟化环境下的实际位置。

直接查容器挂载的绝对路径,最可靠的方式是用 docker inspect 看 Mounts 字段,里面 Source 就是宿主机上的真实绝对路径。
用 docker inspect 查宿主机绝对路径
运行以下命令(把 容器名或ID 替换成你的目标容器):
docker inspect 容器名或ID
在返回的 JSON 中找 "Mounts" 数组,每个条目里:
-
Source:宿主机上真实的绝对路径(比如
/home/user/data或C:\Users\name\volume) -
Destination:容器内对应的路径(比如
/app/data) -
Type 是
bind表示绑定挂载,volume表示 Docker 卷
如果输出太长,可用管道快速定位:
docker inspect 容器名或ID | jq '.[0].Mounts[] | {Source, Destination, Type}'(需安装 jq)
或简单过滤:
docker inspect 容器名或ID | grep -A 5 '"Mounts"
对 volume 类型,要查实际挂载点
如果 Mounts 中 Type 是 volume,Source 显示的是内部卷 ID(如 /var/lib/docker/volumes/myvol/_data),这不是你手动指定的路径。这时需额外查卷的真实位置:
- 先从 Mounts 中记下
Name字段值(比如myapp_data) - 再执行:
docker volume inspect myapp_data | grep Mountpoint - 返回的
Mountpoint值才是宿主机上的绝对路径(通常是/var/lib/docker/volumes/xxx/_data)
Windows/macOS 用户注意路径格式
Windows 上 Docker Desktop 默认使用 WSL2 后端,Source 路径可能是 WSL 内部路径(如 /mnt/c/Users/name/project),不是 Windows 资源管理器看到的 C:\Users\name\project。可直接在 WSL 中验证该路径是否存在。
macOS 上同理,Source 是 macOS 文件系统中的真实路径(如 /Users/name/data),不是虚拟机内部路径。
补充:进容器内反向验证
如果想从容器视角确认挂载是否生效,可进入容器执行:
docker exec -it 容器名 ls -ld /容器内路径
再配合 mount | grep "/容器内路径",输出中能看到类似 /dev/sda1 on /app/data type ext4 的行,其 source 设备或路径可辅助交叉验证,但不如 inspect 直接准确。











