docker-node:以非root用户身份运行,文件权限

qqi*_*ihq 9 permissions chown node.js docker

遵循 docker-node\xe2\x80\x99s最佳实践,我想以非 root 用户身份运行我的节点应用程序。建议如下:

\n\n
FROM node:6.10.3\n...\n# At the end, set the user to use when running this image\nUSER node\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的简化 Dockerfile 目前如下所示:

\n\n
FROM node:6.10.3\nWORKDIR /opt/app\nCOPY package.json .\nRUN npm install\nCOPY . .\nEXPOSE 3000\nUSER node\nCMD ["node", "server.js"]\n
Run Code Online (Sandbox Code Playgroud)\n\n

因此,在映像构建期间添加的所有文件均归 拥有root,但node server.js以用户身份运行node。这似乎工作正常。

\n\n

我的问题:chown通过-ing 文件使它们属于node而不是有任何额外的安全好处吗root?即做类似的事情:

\n\n
RUN chown -R node:node .\n
Run Code Online (Sandbox Code Playgroud)\n

elj*_*efe 6

确实如此,但是我也会删除chown二进制文件(以及所有管理工具)。当有人以 root 身份访问容器时,这会变得更加困难。请参阅此处获取相关答案。

另外,请参阅 Dockerfile以获得灵感。