【发布时间】:2019-08-19 07:19:48
【问题描述】:
基于最佳实践和建议,出于安全原因,我们应该始终以非 root 用户身份运行 docker 容器。这样做时,我面临一个问题,我必须用域名覆盖 /etc/resolv.conf 文件。我通过脚本在 resolv.conf 文件中附加域名,例如env.sh (我称这个脚本为例如 Dockefile 有以下命令
from dabian:latest
...
...
ENTRYPOINT[env.sh]
脚本env.sh 只是根据环境附加域名,例如 dev/qa/prod 等
如果我以 root 用户身份运行 docker 容器,则没有问题,因为 resolv.conf 将使用适当的域名映射(基于环境配置文件)进行更新,但如果我添加非 root 用户(在docker 文件)并使用用户并调用 ENTRYPOINT[evn.sh] ,resolv.conf 文件将不会得到更新。
是不是因为 docker 内的 hosts 或 resolv.conf 之类的文件总是被主机配置覆盖,并且只有 root 才能修改这些文件(看起来很像)。
我的问题是,是否可以像非 root 用户一样做,或者有没有办法授予非 root 用户足够的权限来修改 resolv.conf 并以非 root 用户身份运行(可能只是修改 resolv.conf 的范围或限制用户权限)?有没有人遇到过这种情况?
【问题讨论】:
标签: docker dockerfile root