【问题标题】:Docker: docker: Error response from daemon: linux spec user: unable to find user myuser: no matching entries in passwd file码头工人:码头工人:来自守护进程的错误响应:linux规范用户:找不到用户myuser:passwd文件中没有匹配的条目
【发布时间】:2020-12-21 11:00:48
【问题描述】:
[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 身份运行?

【问题讨论】:

标签: docker


【解决方案1】:

根据文档,您可以使用用户/组的 ID:

传递数字 ID 时,用户不必存在于容器中。

来源:https://docs.docker.com/engine/reference/run/#user

命令可能如下所示:

docker run -p 6379:6379 --user 1001 redisc

【讨论】:

  • 很好的答案。这应该有更多的赞成票。在 docker v 19.03.14 上完美运行。因此,事实证明,我们可以将存在于主机上(但不一定存在于容器上)的 userId (UID) 传递给docker run--user 选项。
【解决方案2】:

主机和容器是完全分开的。您需要在 redisc 容器内创建myuser,然后再尝试以该用户身份运行内容。

【讨论】:

  • 我在 Dockerfile 中添加了“RUN useradd -ms /bin/bash myuser”,但仍然出现同样的错误
  • 哦,我在 RUN 之前有“USER myuser”这一行。我注释掉了“USER myuser”,它似乎正在工作
  • 不需要在容器上创建用户。事实证明,我们可以将存在于主机上(但不一定存在于容器上)的 userId (UID) 传递给docker run--user 选项。在 docker v 19.03.14 上测试
【解决方案3】:

您可以以只读方式挂载主机用户信息

# user user and group IDs:
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】:

    我错误地认为权限被拒绝错误与访问我的文件系统有关。我构建了一个以 bash 脚本作为入口点的容器,但在构建映像之前没有给自己执行权限。

    chmod +x entrypoint.sh 并重建图像解决了我的问题。

    【讨论】:

    • 这解决了我遇到的这个问题,谢谢分享!
    【解决方案5】:

    [root@host ~]# docker run --user=toto -ti fedora:26 uname

    /usr/bin/docker-current:来自守护进程的错误响应:linux 规范用户: 无法找到用户 toto:passwd 文件中没有匹配的条目。

    [root@host ~]# docker run --user=id -u toto -ti fedora:26 uname

    Linux

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-01
      • 2021-02-04
      • 1970-01-01
      • 2021-03-04
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      相关资源
      最近更新 更多