共享主机驱动器安装到两个docker容器的权限问题

时间:2017-02-03 16:40:06

标签: docker

鉴于我有2个容器,Weblogic和Tomcat。

Weblogic在oracle用户下运行,Tomcat在root用户下运行。

我对两种服务使用相同的卷映射,因此部署在Tomcat中的应用程序编排业务流程,其中部署在Weblogic中的应用程序将文件保存到该共享文件夹。

我遇到了权限问题,因为Tomcat在root下运行(使用root owner和group创建目录结构),而在oracle下运行的Weblogic无法保存文件。

在两个容器之间处理共享主机数据文件夹的最佳方法是什么?避免权限问题?

1 个答案:

答案 0 :(得分:0)

unix / linux解决方案是使用:

  1. 与用户相同的UID和开放权限
  2. 该群组的相同GID和开放权限
  3. 上述所有内容以及所有人的开放权限
  4. 这些选项对于在容器内运行的应用程序都适用。

    第三个选项是最不理想的,因为它允许主机上的任何人修改这些文件。但是,实现它是一个快速的chmod -R 777 dir,并且对于在该目录中创建文件的任何应用程序,将umask更新为000。

    留下选项1或2.选项1表示为Tomcat删除root,或以root身份运行Weblogic,前者是首选,但可能无法取决于应用程序。

    如果选项1不可用,请尝试在两个应用之间使用通用组。将用户添加到两个映像中的相同GID,并在目录中将组更改为该公共GID,并在权限中设置组粘滞位,以确保该目录中的每个文件也都创建为该组。

    chgrp $gid dir
    chmod g+s dir