【问题标题】:Permissions issue with shared host drive mounted to two docker containers安装到两个 docker 容器的共享主机驱动器的权限问题
【发布时间】:2017-06-21 02:28:24
【问题描述】:

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

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

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

我遇到了权限问题,因为 Tomcat 在 root 下运行(创建具有 root 所有者和组的目录结构)并且在 oracle 下运行的 Weblogic 无法保存文件。

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

【问题讨论】:

    标签: docker


    【解决方案1】:

    对此的 unix/linux 解决方案是使用:

    1. 用户的 UID 和打开权限相同
    2. 组的 GID 和打开权限相同
    3. 以上都不是,对所有人开放权限

    这些选项都同样适用于在容器内运行的应用。

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

    剩下选项 1 或 2。选项 1 意味着要么删除 Tomcat 的 root,要么以 root 运行 Weblogic,前者是首选,但根据应用程序可能无法实现。

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

    chgrp $gid dir
    chmod g+s dir
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-26
      相关资源
      最近更新 更多