首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以nonRoot用户身份运行我的容器

如何以nonRoot用户身份运行我的容器
EN

Stack Overflow用户
提问于 2020-05-20 13:58:24
回答 1查看 1.6K关注 0票数 1

我的dockerfile:

代码语言:javascript
复制
FROM httpd:2.4
RUN useradd -u 8877 john
USER john
代码语言:javascript
复制
// docker build -t my-apache2 .

// docker run -dit --name my-running-app -p 8080:80 my-apache2

任何帮助都将不胜感激

EN

回答 1

Stack Overflow用户

发布于 2020-05-20 14:02:41

如果您想要添加特定用户,则解决方案是创建一个自定义映像,该映像扩展基本映像并添加用户,例如

代码语言:javascript
复制
FROM:httpd
USER <user>[:<group>]

然后,您可以使用该用户运行容器

代码语言:javascript
复制
docker run --user <user>[:<group>] httpd

在不扩展基础镜像的情况下,您将收到来自docker engine的以下错误消息

代码语言:javascript
复制
docker: Error response from daemon: unable to find user <user>: no matching entries in passwd file

参考:https://docs.docker.com/engine/reference/builder/#user

如果您想使用非root用户的股票图像,那么您可以只指定它的UID,而不是使用上面的用户名。这将使linux以该用户id运行,而不必检查该用户id是否存在。

当然,它与之交互的任何文件都需要是该用户可写的。但作为示例,可以通过添加--user $(id -u):$(id -g)将容器中的默认用户和组更改为您自己的用户和组

代码语言:javascript
复制
docker run -dit --name my-running-app -p 8080:80 --user $(id -u):$(id -g) my-apache2

请参阅此处的docker命令行参考https://docs.docker.com/engine/reference/commandline/run/ https://docs.docker.com/engine/reference/commandline/exec/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61906080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档