docker volume ls 可直接列出所有命名卷名称,输出 driver 和 volume name 两列;匿名挂载、bind mount 和 tmpfs 不显示,因其无名称或非 volume 类型。

docker volume ls 能直接列出所有数据卷名称
这是最简单也最常用的方式,docker volume ls 会输出所有由 Docker 管理的命名卷(Type: "volume"),每行包含 DRIVER 和 VOLUME NAME 两列。匿名挂载(即只写 -v /path/in/container)不会出现在这里——它压根没名字,只有 ID。
常见错误现象:运行 docker volume ls 后一片空白,误以为“没卷”,其实是容器用了 bind mount(Type: "bind")或 tmpfs,不是 volume。
- 命名卷才会有可读名称,比如
my-app-data、postgres-volume - 匿名挂载生成的是随机哈希 ID(如
39b8c53c1fa3...),不显示在docker volume ls的列表里 - Windows/macOS 上用 Docker Desktop 时,该命令仍有效,和 CLI 行为一致
docker inspect 容器时怎么定位它用的 volume 名称
当你只知道容器名,想反查它挂载了哪个命名卷,关键看 Mounts 数组里的 Name 字段——但仅对 Type: "volume" 有效。
执行:docker inspect --format='{{range .Mounts}}{{if eq .Type "volume"}}{{.Name}}{{end}}{{end}}' container-name
这个命令会过滤出所有类型为 volume 的挂载,并只打印其 Name。如果容器用了 bind mount(Type: "bind"),.Name 字段为空或不存在,这条命令就什么也不输出。
- 别用
{{.Source}}替代{{.Name}}:对命名卷来说,.Source是宿主机上的绝对路径(如/var/lib/docker/volumes/myvol/_data),不是你起的名字 - 多个 volume 挂载时,上述
range循环能一次输出全部名称,不用人工翻 - 如果容器启动时用了
-v myvol:/app,那.Name就是myvol;如果用了-v /host/path:/app,.Name字段根本不会出现
Docker Desktop GUI 里怎么确认 volume 名称是否真实存在
Docker Desktop 的「Volumes」标签页只展示 docker volume 管理的卷,也就是真正有名字的那些。它不会显示 bind mount 或容器内部自建目录。
界面上看到的「名称」列就是实际可用的 volume 名称,可直接用于 docker run -v <name>:/target</name> 或 docker volume inspect <name></name>。
- 状态为「未使用」不代表无效,只是当前没容器挂载它,数据仍在
- 点进某个 volume 查看详情时,「使用中的容器」区域为空,说明它可能被删过容器但卷没删——这是预期行为,不是异常
- 如果你在 CLI 里创建了 volume(
docker volume create foo),几秒后 Desktop 界面就会刷新出来;反之,在 Desktop 点「Create」新建的卷,CLI 里也能立刻docker volume ls看到
为什么 docker volume inspect 返回的 Source 路径里没有 volume 名称
docker volume inspect myvol 输出的 Mountpoint 字段(或旧版的 Source)类似 /var/lib/docker/volumes/myvol/_data,路径里确实含 volume 名,但这个路径本身不能当 volume 名用——它是 Docker 内部管理路径,受存储驱动和平台影响。
例如在 macOS 的 Docker Desktop 中,这个路径实际指向虚拟机内的路径,宿主机上不可直接访问;Windows 上则经过 WSL2 层转发。硬编码这个路径会导致跨环境失效。
- 永远用 volume 名(如
myvol)做参数,而不是它的Mountpoint -
_data是固定后缀,不可省略,也不可替换成其他子目录名——Docker 只认这个入口 - 如果你在容器里执行
ls /var/lib/docker/volumes/...,会失败:该路径在容器命名空间里不可见,只存在于宿主机或 VM 中
docker volume create 会静默失败或报错,但错误信息藏在日志里,GUI 甚至不提示。











