我创建的Docker卷存储在Windows机器上的什么位置?

时间:2018-08-08 12:10:11

标签: windows docker docker-volume docker-for-windows

我了解数据卷对于Windows上运行的Linux VM是本地的,而Windows主机上不可用。您可以将它们与其他容器一起使用,但不能与主机一起使用。但是,我想知道是否仍然可以找到它们。当我在Windows linux子系统中检查创建的卷时,我得到了:

[
  {
    "CreatedAt": "2018-08-08T09:41:56Z",
    "Driver": "local",
    "Labels": {},
    "Mountpoint": "/var/lib/docker/volumes/my-vol/_data",
    "Name": "my-vol",
    "Options": {},
    "Scope": "local"
  }
]

但是WSL上显然没有docker目录。是否可以访问发生docker事件的HyperV istance linux,请问如何在该目录中检查目录?

谢谢 一个

1 个答案:

答案 0 :(得分:1)

在Windows上,Docker在名为MobyLinuxVM的VM中运行,但是您无法通过Hyper-V Manager登录到该VM。从技术上讲,我们不会通过SSH进入虚拟机,我们将创建一个具有完全根访问权限的容器,然后从那里访问文件系统。

  • 获取有权访问Docker Daemon的容器
  • 运行具有完全根访问权限的容器
  • 切换到主机文件系统
  • 打开命令提示符并执行以下操作:

    $ docker run --privileged -it -v /var/run/docker.sock:/var/run/docker.sock 
    jongallant/ubuntu-docker-client 
    $  docker run --net=host --ipc=host --uts=host --pid=host -it --security- 
    opt=seccomp=unconfined --privileged --rm -v /:/host alpine /bin/sh
    $  chroot /host
    

然后

/ # cd var
/var # cd lib
/var/lib # ls
cni  containerd  docker  kubeadm  kubelet-plugins  log  lost+found  nfs  swap
/var/lib # cd docker
/var/lib/docker # ls
builder  buildkit  containerd  containers  image  network  overlay2  plugins  runtimes  swarm  tmp  trust  volumes
/var/lib/docker # cd volumes
/var/lib/docker/volumes # ls
my-vol
/var/lib/docker/volumes #