node.js - docker:安装 node.js 应用程序有问题,因为 docker 以 root 身份运行

标签 node.js unix ubuntu docker

通过 pull ubuntu 设置 docker 实例然后通过 base-image/docker ,然后在此之上成功安装了 node.js。

但是,当我尝试提取我正在开发的 node.js 应用程序的 repo 时,我得到了 npm install操作然后遇到麻烦,因为该操作不希望以root身份运行,我已经通过实例化了它

docker run -name="{name}" -t -i {my custom docker container mirroring base-image) /bin/bash 

这让我以 root 身份登录。有没有办法运行docker不作为根?

最佳答案

是的——您需要根据容器的 Linux 发行版的期望在容器内创建另一个用户帐户(这里是 an Ubuntu example )。

设置好用户帐户后,您可以使用 Dockerfile USER parameter以该用户身份运行 Dockerfile 中的其余命令。请参阅 PostgreSQL example对于完整的用例。

该示例中的 postgre 用户来自哪里? Debian 软件包在安装时会创建他们需要的任何用户。如果您想创建自己的用户,可以添加 RUN useradd给您的Dockerfile .有关完整示例,您可以查看 Atlassian Blog 中的 Jira Dockerfile。

作为运算符(operator),您还可以在 docker run 上决定要使用的用户帐户。时间,使用 -u范围。这将覆盖 USER在 Dockerfile 中选择。

关于node.js - docker:安装 node.js 应用程序有问题,因为 docker 以 root 身份运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21873789/

相关文章:

linux - 在搜索其中包含 '/' 的字符串时,是否可以在 vi 编辑器中转义 '/'?

linux - 如何在脚本中停止 tail 命令

c++列出(LINUX)中的所有目录和子目录

windows - 在 Windows 和 Linux/Ubuntu 上运行的基准测试软件

javascript - Twitter API - 发布收藏夹/创建特定速率限制

node.js - DDD 和 Node.js : Good practice to have a repository with async callbacks?

Javascript数组只保存最近的对象

javascript - Angularjs 服务单元测试

linux - ^A 和 ^B 分隔值

linux - Ubuntu cron shebang 不工作