Docker 多容器协作共享volume的权限问题

浏览:31日期:2023-03-03

问题描述

先上个结构图Docker 多容器协作共享volume的权限问题然后现在的情况是访问访问本地8080端口来访问tengine容器的80端口http://x.x.x.x:8080/index.html可以正常访问http://x.x.x.x:8080/index.phpphpfpm容器显示日志:

172.17.0.3 - 12/Nov/2015:08:57:00 +0000 'GET /index.php' 404172.17.0.3 - 12/Nov/2015:08:57:00 +0000 'GET /index.php' 404172.17.0.3 - 12/Nov/2015:08:57:00 +0000 'GET /index.php' 404

显示404.无法访问到页面,那么我想可能是权限问题。【进入tengine容器】Docker 多容器协作共享volume的权限问题【进入phpfpm容器】

Docker 多容器协作共享volume的权限问题

我是直接用了php:5.5.30-fpm的image来把phpfpm容器跑起来phpfpm容器的/usr/local/etc/php-fpm.conf文件我看了下

user = www-datagroup = www-data

关键的问题来了:我在phpfpm容器中用chown -R www-data:www-data /data/sites命令后,/data/sites下所有文件拥有者依然是staff。1、为啥无法更改volume锁挂在目录的拥有者,是需要构建images的时候,改权限,然后再挂载?2、staff是个什么鬼?

问题解答

回答1:

volume的权限在于主机是怎么给的,如果你想要给phpfpm文件夹www-data:www-data权限,在你的主机挂载目录执行chown -R www-data:www-data /data/sites即可。

回答2:

我也遇到相同的问题,请问楼主解决了吗

更新

我刚刚解决了在 MAC 环境下,无法更改 volume 目录的问题

BTW 我是用 dockerfile build 的

在 phpfpm 容器的 Dockerfile 加上以下两行

RUN usermod -u 1000 www-dataRUN usermod -G staff www-data

就可以解决了

相关 issue 的讨论

回答3:

之前也遇到了,是通过挂载时加权限解决的。

相关文章: