我想创建带有卷和自定义组的 docker 容器。但在容器内遇到权限错误。所有文件都具有例如“自定义组”并且工作正常,但文档文件夹默认具有根组。我认为这是由于数量所致。如何将文档文件夹设置为“自定义组”。我的代码如下
volumes:
- /base/documents:/app/documents:rw
容器内部的 uid/gid 通常与容器外部、主机上的 uid/gid 相同(默认情况下用户命名空间处于关闭状态,并且不会解决此问题,事实上它们会使情况变得更糟)。请注意,这是 uid/gid,而不是用户名和组名,因为容器可以拥有自己的 /etc/passwd 和 /etc/group 文件。
您需要使用与主机上的文件相匹配的 uid/gid 来运行容器。这是通过user
撰写文件的部分,或-u
docker run 命令行上的选项,例如:
docker run -u "$(id -u):$(id -g)" -v /base/documents:/app/documents:rw ...
或在撰写文件中:
user: "1000:1000"
如果您的应用程序必须以 root 身份运行,那么处理此问题的选项就会少得多。我自己的偏好是从以 root 身份启动的入口点动态处理 uid/gid,修复容器内的 uid/gid 以匹配主机(查看卷所有者),然后从 root 删除到容器用户运行应用程序。有关如何完成此操作的更多详细信息,您可以查看我的基础图像repo,包括 nginx 示例和 fix-perms 脚本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)