通过 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/