【发布时间】:2018-11-12 12:11:51
【问题描述】:
我正在像这样从我的 docker 映像启动容器:
$ docker run -it --rm --user=999:998 my-image:latest bash
其中 uid 和 gid 用于名为 sdp 的系统用户:
$ id sdp uid=999(sdp) gid=998(sdp) groups=998(sdp),999(docker)
但是:容器说“不”...
groups: cannot find name for group ID 998
I have no name!@75490c598f4c:/home/myfolder$ whoami
whoami: cannot find name for user ID 999
我做错了什么?
请注意,我需要在多个系统上运行基于此映像的容器,并且不能保证用户的 uid:gid 在各个系统中都是相同的,这就是为什么我需要在命令行而不是在Dockerfile。
提前致谢。
【问题讨论】:
-
如果我理解正确,您可以使用 -u, docker run -it -u root --rm --name=999:998 my-image:latest 与特定用户一起进入 bash重击
-
谢谢,赫曼特。您的回复让我注意到我在我随后编辑的问题中输入了错误的命令行。我一直在使用 --user 选项,和 -u 一样。
-
为什么需要容器以特定系统用户身份运行?您是否尝试访问使用主机卷/绑定挂载挂载的内容并且需要避免权限问题?
标签: docker dockerfile