docker 卷位于何处?

fra*_*ker 6 docker boot2docker

在 macOS 上使用 docker 机器时需要知道 docker 卷位于何处。安装使用的是 boot2docker,所以虚拟机在后面工作。

例子:

docker volume create test-data
Run Code Online (Sandbox Code Playgroud)

docker inspect 显示路径,但我在哪里可以找到特定的(物理)位置?

sed*_*mar 6

macOS使用虚拟机,它与 linux 不同,您可以从 /var/lib/docker/volumes 访问卷。对于 macOS,您应该连接到 VM 以查找您的卷。

如果您在 Docker 中使用持久数据卷,并且希望通过命令行访问它们。

如果您的 docker 主机是 Linux,那不是问题;您可以通过/var/lib/docker/volumes路径找到 Docker 卷。

但是,当您使用 Docker for Mac 时,情况并非如此。尝试从 MacOS 终端 cd /var/lib/docker/volumes ,您将一无所获。

你看,你的 Mac 机器不是真正的 Docker 主机。Docker for Mac 运行一个虚拟机并将它隐藏起来,让事情变得简单。

因此,要访问 Docker for Mac 创建的持久卷,您需要连接到该 VM。

为了实现这一点,我们需要在 Mac 上使用串行终端。有一个名为“screen”的终端应用程序可以帮助我们。

我们需要通过执行以下命令来“筛选”Docker 驱动程序:

屏幕 ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

  1. 屏幕 ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
  2. 您应该会看到一个空白屏幕,只需按 Enter ,过了一会儿,您应该会看到一个命令行提示
  3. 现在你在 Docker 的虚拟机中,你可以通过键入以下命令进入卷目录: cd /var/lib/docker/volumes

利润,你到了!

如果您需要将文件从 MacOS 主机传输到 Docker 主机,您可以参考文件共享

希望这对你有帮助!

  • 截至 2022 年 7 月,对于 Macos 的 docker 桌面,“~/Library/Containers/com.docker.docker/”内的任何位置都没有“tty”程序。文件共享链接链接到不处理文件共享的页面... (2认同)

Dav*_*aze 5

它位于虚拟机内,不能从主机直接访问。

像这样的调试级命令docker volume inspect会给你一个路径,但它们实际上只用于紧急调试而不是日常使用。如果你有办法在 VM 中获得一个 shell,你可以看到那个路径,但你真的不应该直接访问那里的文件,你不应该经常访问docker inspect任何东西。