如何从容器中列出Docker挂载的卷

Leo*_*cci 12 mount inspect docker

我想列出已装入卷的所有容器目录.

即我能得到类似的信息

docker inspect --format "{{ .Volumes }}" <self>
Run Code Online (Sandbox Code Playgroud)

但是从容器内部并没有docker安装在那里.

我试过cat /proc/mounts,但我找不到合适的过滤器.

Rya*_*oun 9

(编辑 - 这可能不再适用于 Mac)如果您的 Docker 主机是 OS X,则安装的卷将是 osxfs(或 fuse.osxfs)类型。你可以运行一个

mount | grep osxfs | awk '{print $3}'

并获取所有已安装卷的列表。

如果您的 Docker 主机是 Linux(至少是 Ubuntu 14+,也可能是其他),卷似乎都在 上/dev,但不在容器/dev文件系统中的设备上。该卷将一起/etc/resolv.conf/etc/hostname/etc/hosts。如果您执行 amount | grep ^/dev开始,然后过滤掉 中的任何文件ls /dev/*,然后过滤掉上面列出的三个文件,您应该留下主机卷。

mount | grep ^/dev/ | grep -v /etc | awk '{print $3}'

我的猜测是 Linux 到 Linux 的具体细节可能有所不同。不理想,但至少可以弄清楚。