将目录挂载到 docker 容器

Mounting a directory to docker container

我正在尝试将主机目录挂载到我的 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 中。为什么不是这样?

如果您在 Mac 或 Windows 上使用 Docker Machine,docker 对您的 OS X 或Windows 文件系统。默认情况下 Docker Machine 尝试自动共享您的 /Users (OS X) 或 C:\Users (Windows) 目录。

因此文件夹 /app 必须位于主机中 /Users 目录下的某处。

所有其他路径都来自您虚拟机的文件系统,因此如果您想让一些其他主机文件夹可用于共享,您需要做额外的工作。对于 VirtualBox,您需要使主机文件夹在 VirtualBox 中作为共享文件夹可用。