将目录挂载到Docker容器

3

我将尝试将主机目录挂载到我的nginx docker容器上。但是,它没有挂载我期望的内容。

docker-compose.yml:

nginx:
  image: nginx
  volumes:
    - ./app:/root/testfolder

这是容器中目录的内容:
root@846e68e6e8b5:/# ls root/testfolder/
50x.html  index.html

我的主机上的目录:

bash-3.2$ ls
app         bower.json      docker-compose.yml  gulpfile.js     node_modules        package.json
bash-3.2$ ls app/
app.js          assets      bower_components        common      index.html      modules
bash-3.2$ 

这是我正在运行的当前版本:

OSX 10.10.5
Docker version 1.10.0, build 590d5108
docker-compose version 1.6.0, build d99cad6
docker-machine version 0.6.0, build e27fb87

我希望主机目录 ./app 能够挂载到 root/testfolder,为什么没有实现呢?该如何处理?

我没有看到你的配置有任何问题。请问您能否给我们提供更多信息?您在主机上使用什么操作系统?您是否正在使用 docker-machine?您使用的是哪个版本的 Docker 和 Compose? - Hemerson Varela
我已经更新了问题并附上了详细信息。 - Patrick Reck
1个回答

3
如果您在 Mac 或 Windows 上使用 Docker Machine,docker 对您的 OS X 或 Windows 文件系统的访问是受限的。默认情况下,Docker Machine 会尝试自动共享您的 /Users(OS X)或 C:\Users(Windows)目录。
因此,在主机上,文件夹 /app 必须位于 /Users 目录的某个位置下。
所有其他路径都来自于您的虚拟机文件系统,因此如果您想要使其他主机文件夹可供共享,则需要进行额外的工作。在 VirtualBox 的情况下,您需要将主机文件夹作为共享文件夹在 VirtualBox 中提供。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接