Docker 在容器上挂载空目录

Docker mounts empty directories on containers

我 运行 Docker Windows 10 Home 上的工具箱,没有 Hyper-v,它正在使用 Virtualbox。

Docker 像 shell (boot2docker) 一样从 Mingew 启动,并且可以查看和使用 Windows 目录。

我要挂载的目录是D:\project\src

我试过了:

$ cd /d/project
$ docker run -it -v "$PWD":/proj -w /proj golang
root@68ce305398a1:/proj# ls -a
. ..

有趣的是,如果我这样做:

$ docker run -it -v "$PWD"/src:/proj -w /proj golang
root@68ce305398a1:/proj# ls -a
. ..

然后

$ docker run -it -v "$PWD":/proj -w /proj golang
root@68ce305398a1:/proj# ls -a
src . ..

现在出现src是因为我之前mount过它,但是没有src下或src以外的其他目录!

尽管我在 D:\proj\ 和 D:\proj\src 中都有文件,从中可以看到 shell (boot2docker)

我还将该目录添加到 virtualbox 共享文件夹(尽管无法挂载它们)。

我做错了什么?有没有办法让它在这种环境下工作?

找到解决方案:

目录在 Virtualbox 中共享不正确。

在 boot2docker shell 中,我发现我有 /d/proj 挂载在容器中是空的。

但是还有 /proj 是我在 virtual box 中的错误共享。

只需在 virtualbox 共享中添加 /d/proj 作为挂载点即可解决问题。