[英]Mount WordPress named volume in subdirectory of NGINX container with docker-compose
[英]Docker --volume does not mount folder into nginx container
我正在尝试学习一些 docker 命令(没有 Dockerfile,我在 ubuntu 上)。 我首先使用这个命令:
docker container run -p 80:80 nginx:latest
然后在我的浏览器中,当我打开http://192.168.99.100 (这是我的虚拟机 IP)时,它显示了 nginx 的默认页面。
然后我停止容器并尝试以下命令:
dock container run --volume /home/mazoo/DockerExampleFolder/html:/usr/share/nginx/html -p 80:80 nginx:latest
我在我的 brwoser http://192.168.99.100 中打开并收到 403 Forbidden 错误。 我的控制台显示:
2019/12/16 00:23:56 [error] 6#6: *1 directory index of "/usr/share/nginx/html/" is forbidden, client: 192.168.99.1, server: localhost, request: "GET / HTTP/1.1", host: "192.168.99.100"
我也尝试http://192.168.99.100/1.html(1.html是我计算机上 /home/mazoo/DockerExampleFolder/html 文件夹中的一个 html 文件,逻辑上应该安装到容器中)我收到 404 Not Found 错误浏览器并在我的控制台中看到此错误:
[error] 6#6: *1 open() "/usr/share/nginx/html/1.html" failed (2: No such file or directory), client: 192.168.99.1, server: localhost, request: "GET /1.html HTTP/1.1", host: "192.168.99.100"
错误显示“/usr/share/nginx/html”没有从我的主机接收到 1.html 文件到容器中。
然后我在我的容器中尝试另一条路径:
docker container run --volume /home/mazoo/DockerExampleFolder/html:/var/html -p 80:80 nginx:latest
但是当我浏览http://192.168.99.100 时,它显示默认的 nginx 欢迎页面(我的 html 文件夹中有一个 index.html,所以我希望默认的欢迎页面应该被覆盖),然后再次显示http://192.168.99.100/1。 html我收到未找到错误。
似乎由于某些原因,我的文件夹没有安装到我的容器中。
首先使用名称启动 docker 容器:
dock container run --name nginx --volume /home/mazoo/DockerExampleFolder/html:/usr/share/nginx/html -p 80:80 nginx:latest
然后进入正在运行的容器中进行探索。
docker exec -it nginx bash
检查 /usr/share/nginx/.. 中的预期文件和所有权
我怀疑这是一个许可问题。
使用命名卷:
docker rm nginx ## clean up from earlier, if needed
docker volume create nginx-data
docker run --name nginx --rm -v nginx-data:/usr/share/nginx/html nginx:latest
容器外:
cd /var/lib/docker/volumes/nginx-data/_data/
答案是这样的:
在 Oracle VM VirtualBox 共享文件夹设置中,我的“home”被映射为“hosthome”,而不是
dock container run --name nginx --volume /home/mazoo/DockerExampleFolder/html:/usr/share/nginx/html -p 80:80 nginx:latest
它应该是
dock container run --name nginx --volume /hosthome/mazoo/DockerExampleFolder/html:/usr/share/nginx/html -p 80:80 nginx:latest
意思是路径中的“home”而不是“hosthome”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.