有没有办法列出 docker 卷内的文件?
Is there a way to list files inside a docker volume?
简单的问题:是否有docker查看卷内文件的命令?
I 运行 docker for windows 在我的机器上为 运行 Docker 创建了一个 MobyLinuxVM。我无法像使用 Ubuntu VM(我的机器上也有 运行ning)那样在这台机器上建立远程桌面连接。
因此,我无法查看主机卷中的内容(因为它们实际上在 MobyLinuxVM 中),就好像我 运行 docker 在我的 Ubuntu VM 我可以远程到机器上看一下。
因此,有没有一种方法可以 运行 某种 docker volume
命令来列出每个卷中的内容?
您可以为此使用临时容器。我倾向于将 busybox 用于这些临时容器:
$ docker volume ls
DRIVER VOLUME NAME
local jenkins-home
local jenkins-home2
local jenkinsblueocean_jenkins-data
...
$ docker run -it --rm -v jenkins-home:/vol busybox ls -l /vol
total 428
-rw-r--r-- 1 1000 1000 327 Jul 14 2016 com.dabsquared.gitlabjenkins.GitLabPushTrigger.xml
-rw-r--r-- 1 1000 1000 276 Aug 17 2016 com.dabsquared.gitlabjenkins.connection.GitLabConnectionConfig.xml
-rw-r--r-- 1 1000 1000 256 Aug 17 2016 com.nirima.jenkins.plugins.docker.DockerPluginConfiguration.xml
drwxr-xr-x 28 1000 1000 4096 Aug 17 2016 config-history
-rw-r--r-- 1 1000 1000 6460 Aug 17 2016 config.xml
-rw-r--r-- 1 1000 1000 174316 Jun 2 18:50 copy_reference_file.log
-rw-r--r-- 1 1000 1000 2875 Aug 9 2016 credentials.xml
...
对于主机卷,您可以在 docker run
cli 中用主机目录名称(完全限定)替换卷安装。
$ docker run -it --rm -v /path/on/host:/vol busybox ls -l /vol
不确定这有多广泛适用,但如果您有 root 访问权限,我刚刚发现您可以在 /var/lib/docker/volumes/<VOLUME_NAME>/_data
浏览卷的内容。 VOLUME_NAME
如docker volume ls
所示。
我正在查看 Ubuntu 18.04 VM 运行 Docker 19.03.5 - YMMV。
这不是问题的直接答案(因为它询问的是 docker 命令)但万一有人像我一样到达这里:
如果您有 Docker 桌面(至少在 Windows 上),您可以使用 Docker 桌面 GUI 浏览卷。只需单击音量,然后切换到顶部的“数据”选项卡。
如果您只是想四处看看或复制一个文件,那么简单快捷。
简单的问题:是否有docker查看卷内文件的命令?
I 运行 docker for windows 在我的机器上为 运行 Docker 创建了一个 MobyLinuxVM。我无法像使用 Ubuntu VM(我的机器上也有 运行ning)那样在这台机器上建立远程桌面连接。
因此,我无法查看主机卷中的内容(因为它们实际上在 MobyLinuxVM 中),就好像我 运行 docker 在我的 Ubuntu VM 我可以远程到机器上看一下。
因此,有没有一种方法可以 运行 某种 docker volume
命令来列出每个卷中的内容?
您可以为此使用临时容器。我倾向于将 busybox 用于这些临时容器:
$ docker volume ls
DRIVER VOLUME NAME
local jenkins-home
local jenkins-home2
local jenkinsblueocean_jenkins-data
...
$ docker run -it --rm -v jenkins-home:/vol busybox ls -l /vol
total 428
-rw-r--r-- 1 1000 1000 327 Jul 14 2016 com.dabsquared.gitlabjenkins.GitLabPushTrigger.xml
-rw-r--r-- 1 1000 1000 276 Aug 17 2016 com.dabsquared.gitlabjenkins.connection.GitLabConnectionConfig.xml
-rw-r--r-- 1 1000 1000 256 Aug 17 2016 com.nirima.jenkins.plugins.docker.DockerPluginConfiguration.xml
drwxr-xr-x 28 1000 1000 4096 Aug 17 2016 config-history
-rw-r--r-- 1 1000 1000 6460 Aug 17 2016 config.xml
-rw-r--r-- 1 1000 1000 174316 Jun 2 18:50 copy_reference_file.log
-rw-r--r-- 1 1000 1000 2875 Aug 9 2016 credentials.xml
...
对于主机卷,您可以在 docker run
cli 中用主机目录名称(完全限定)替换卷安装。
$ docker run -it --rm -v /path/on/host:/vol busybox ls -l /vol
不确定这有多广泛适用,但如果您有 root 访问权限,我刚刚发现您可以在 /var/lib/docker/volumes/<VOLUME_NAME>/_data
浏览卷的内容。 VOLUME_NAME
如docker volume ls
所示。
我正在查看 Ubuntu 18.04 VM 运行 Docker 19.03.5 - YMMV。
这不是问题的直接答案(因为它询问的是 docker 命令)但万一有人像我一样到达这里:
如果您有 Docker 桌面(至少在 Windows 上),您可以使用 Docker 桌面 GUI 浏览卷。只需单击音量,然后切换到顶部的“数据”选项卡。
如果您只是想四处看看或复制一个文件,那么简单快捷。