[root@mymachine redisc]# docker run -p 6379:6379 --user myuser redisc
docker: Error response from daemon: linux spec user: unable to find user myuser: no matching entries in passwd file.
但我可以成为主持人的myuser
[root@mymachine redisc]# sudo su myuser
[myuser@mymachine redisc]#
我如何能够在容器中以myuser身份运行?
答案 0 :(得分:1)
主机和容器完全分开。在尝试以该用户身份运行内容之前,您需要在redisc容器中创建<{1}} 。
答案 1 :(得分:0)
根据文档,您可以使用用户/组的ID:
传递数字ID时,用户不必在容器中。
来源:http://www.w3.org/TR/2003/PR-owl-guide-20031209/food]
命令如下所示:
docker run -p 6379:6379 --user 1001 redisc
答案 2 :(得分:0)
[root @ host〜]#docker run --user = toto -ti fedora:26 uname
/ usr / bin / docker-current:来自守护程序的错误响应:linux spec用户: 找不到用户toto:passwd文件中没有匹配的条目。
[root @ host〜]#docker run --user =
id -u toto
-ti fedora:26 unameLinux
答案 3 :(得分:0)
您可以装载只读的主机用户信息
usr="--user $(id -u myuser):(id -G myuser)"
mountdirs="-v /etc/passwd:/etc/passwd:ro -v /etc/shadow:/etc/shadow:ro -v /etc/group:/etc/group:ro"
options="-p 6379:6379"
# I use
# options="-ti --rm --entrypoint=/bin/bash"
image=redisc
docker run ${options} ${usr} ${mountdirs} -w /home/myuser "${image}"
答案 4 :(得分:0)
我错误地认为权限被拒绝错误与访问我的文件系统有关。我构建了一个以 bash 脚本作为入口点的容器,但在构建映像之前没有给自己执行权限。
chmod +x entrypoint.sh
并重建图像解决了我的问题。