linux 安装在/tmp/example上的Docker Nginx

ldxq2e6h  于 2023-04-29  发布在  Linux
关注(0)|答案(1)|浏览(131)

我试图挂载nginx映像到/tmp/example和我的示例站点IM得到403错误。
我用命令运行它:
docker run --rm --name test-nginx -v /tmp/example:/usr/share/nginx/html:ro -p 8080:80 nginx
当我挂载到任何其他目录,例如/home/user/ im,进入我的网站没有任何问题。我发现在日志中这个错误,而试图达到网站:
[error] 29#29: *1 directory index of "/usr/share/nginx/html/ " is forbidden
我已经尝试chmod目录到777,但这不工作。

06odsfpq

06odsfpq1#

您需要确保/tmp/example文件夹存在于您的主机目录中,其中包含您要加载到容器中nginx /usr/share/nginx/html位置的示例站点。如果示例文件夹不存在,当您使用docker命令卷挂装不存在的文件夹时,它将创建一个具有root用户的文件夹,并且您会收到403错误,因为容器是以非root用户启动的。

$ mkdir -p /tmp/example/
$ touch /tmp/example/hello.html
$ echo "hello" > /tmp/example/hello.html 
$ docker run -d --rm --name test-nginx -v /tmp/example/:/usr/share/nginx/html:ro -p 8080:80 nginx 
84e5e49d7460051dc6ba624176ab66d38209b015be3e80f7f42ca5c71308f9ab
$ docker exec -it 84e5e49d7460 sh
root@84e5e49d7460:/# cd /usr/share/nginx/html/
root@84e5e49d7460:/usr/share/nginx/html# ls -ltr
total 4
-rw-r--r--. 1 1001 1001 6 Apr 25 12:14 hello.html

装载卷的文件与主机上存在的文件具有相同的用户ID和组。访问您的应用程序-http://<host_fqdn>:8080/hello。超文本标记语言

相关问题