我创建了一个包含 Nginx 的简单 Docker 容器,但由于某种原因,它无法访问www
来自主机的卷数据。
这是我使用的命令:
docker run \
-d \
-p 8080:80 \
--name nginx \
--restart always \
-v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /var/www:/usr/share/nginx/html \
-v /home/myuser/myvhost.conf:/etc/nginx/sites-enabled/myvhost.conf:ro \
-v /var/log/nginx:/var/log/nginx \
nginx:1.9.4;
所有卷都已正确安装(我已检查),但是当我访问网站时出现 404 并且主机上的docker inspect
Nginx显示:error.log
"/var/www/docker/index.html" is not found (2: No such file or directory)
这令人惊讶,因为这条路绝对是正确的……
答案1
Nginx 正在寻找中的内容/var/www
,但您似乎没有在 上安装任何内容/var/www
。
您正在容器内部/var/www
安装主机。/usr/share/nginx/html
看起来你要么需要(a)修改你的 ngingx 配置,要么(b)将你的主机挂载/var/www
到容器内/var/www
,要么(c)你的一些-v
规范是向后的(语法是-v <host_path>:<container_path>
)