在容器中保留用户

时间:2017-06-24 03:16:25

标签: docker rstudio-server

对于主RStudio Docker镜像,用户/密码信息存在于容器中。要创建新用户,您需要在容器内运行adduser,请参阅:https://github.com/rocker-org/rocker/wiki/Using-the-RStudio-image#multiple-users。这是更新到新容器时的问题,因为显然/etc/passwd/etc/shadow等不会在容器之间保留。我正在考虑将文件安装到主机上,如此

docker run -d -p 8787:8787 \
-v $(pwd)/passwd:/etc/passwd \
-v $(pwd)/shadow:/etc/shadow \
... rocker/rstudio

但我不确定与系统用户关联的文件是否应该从容器暴露给主机。在添加用户的情况下维护构建在rocker/rstudio之上的单独图像是否更好?还是有更好的其他图像?

2 个答案:

答案 0 :(得分:0)

我选择与您需要的所有用户一起创建新图像。这是最容易重新部署的。从主机挂载文件可能会在映像中显示具有错误所有权的系统文件。如果你需要能够动态调整用户,那么只为这些文件(不是从主机映射)的卷可能有效,但你也需要主目录,可能需要挂载整个/ etc以避免inode安装单个文件的问题。

答案 1 :(得分:0)

据我所知,这不是问题所在 - 但是你努力做到这一点的原因很难 - 因为这是错误的做法。

你可以摆弄它,使用某种PAM插件将一些用户(从你的应用程序)移动到另一个auth-plugin,它也可以使用文件进行定义,比如/ etc / rstudio_users - 非常与stfp和ftp用户类似。然后,您可以安全地在容器之间共享此文件,而不会在可怕的停止共享所有用户,也包括系统用户,这将在某些时候关闭您的初始概念。

如果您希望正确完成此操作,请使用LDAP之类的内容正确共享身份验证数据