Docker撰写 – 共享卷Nginx

我只是想testingDocker,似乎有些东西不能正常工作。 当我有我的docker-compose.yml像这样:

web: image: nginx:latest ports: - "80:80" 

当在浏览器中运行我的docker.app域(示例域指向dockerIP)我得到默认的nginx网页。

但是当我尝试做这样的事情:

 web: image: nginx:latest volumes: - /d/Dev/docker/nginx-www/nginx/html/:/usr/share/nginx/html/ ports: - "80:80" 

当我运行:

 docker-compose up -id 

当我在浏览器中运行相同的url时,我得到:

403禁止

nginx的/ 1.9.12

我使用Windows 8.1作为我的主机。

我做错了什么或者文件夹不能以这种方式共享?

编辑

解决方法(基于@HemersonVarela答案):

我试过的卷是在D:\Dev\docker位置,所以我在path的开始处使用/d/Dev/docker 。 但看看https://docs.docker.com/engine/userguide/containers/dockervolumes/你可以阅读:

如果您在Mac或Windows上使用Docker Machine,则Docker守护程序对OS X或Windows文件系统的访问权限有限。 Docker机器尝试自动共享您的/ Users(OS X)或C:\ Users(Windows)目录。

所以我需要做的是在C:\users\marcin目录中创build我的nginx-ww/nginx/html目录,所以我以下面的结尾:

 web: image: nginx:latest volumes: - /c/Users/marcin/docker/nginx-www/nginx/html/:/usr/share/nginx/html/ ports: - "80:80" 

这工作没有问题。 文件现在应该是共享的

Solutions Collecting From Web of "Docker撰写 – 共享卷Nginx"

如果您在Windows上使用Docker Machine,则docker对Windows文件系统的访问权限有限。 默认情况下,Docker机器会尝试自动共享您的C:\Users (Windows)目录。

所以文件夹.../Dev/docker/nginx-www/nginx/html/必须位于主机的C:\Users目录下。

所有其他路径来自您的虚拟机的文件系统,所以如果您想让其他主机文件夹可用于共享,您需要做额外的工作。 在VirtualBox的情况下,您需要将主机文件夹作为VirtualBox中的共享文件夹。

你必须设置一个命令将你的nginx.conf复制到nginx容器中:

Dockerfile :

 FROM nginx COPY nginx.conf /etc/nginx/nginx.conf` 

创建一个名为nginx的目录,并将Dockerfilenginx.conf放在那里,然后你必须设置一个构建:

docker-compose.yml :

 web: image: nginx:latest build :./nginx/ volumes: - /d/Dev/docker/nginx-www/nginx/html/:/usr/share/nginx/html/ ports: - "80:80" 

然后建立你的容器: sudo docker-compose build