加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Docker使用gosu与USER

发布时间:2020-12-16 03:31:31 所属栏目:安全 来源:网络整理
导读:Docker总是有一个USER命令来作为一个特定的用户运行一个进程,但是一般来说,很多事情都不得不以ROOT运行. 我看到很多图像,使用一个ENTRYPOINT与gosu来取消提升运行的过程. 我对gosu的需要还有点困惑.用户不应该不够用吗 我在Docker 1.10的安全性方面有所改变,

Docker总是有一个USER命令来作为一个特定的用户运行一个进程,但是一般来说,很多事情都不得不以ROOT运行.

我看到很多图像,使用一个ENTRYPOINT与gosu来取消提升运行的过程.

我对gosu的需要还有点困惑.用户不应该不够用吗

我在Docker 1.10的安全性方面有所改变,但是我仍然不清楚在Docker容器中运行流程的推荐方法.

有人可以解释何时使用gosu vs. USER?

谢谢

编辑:

Docker best practice guide不是很清楚:它说如果进程可以无需运行,可以使用USER,如果需要sudo,可能需要使用gosu.
这是令人困惑的,因为可以在Docker文件中安装各种各样的东西作为ROOT,然后创建一个用户并给予它适当的权限,然后最终切换到该用户并运行CMD作为该用户.
那么为什么我们需要sudo或gosu呢?

最佳答案
Docker文件用于创建图像.当您不能再在Docker文件中的运行命令之间更改用户时,我将gosu视为容器初始化的一部分.

图像创建后,像gosu这样的东西可以让您在容器内的entrypoint的末尾删除root权限.您最初可能需要root访问来执行一些初始化步骤(修复uid,主机挂载卷权限等).然后一旦初始化,您运行最终服务没有root权限和pid 1来干净地处理信号.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读