我有一个正在运行的Docker容器,其中包含以下内容:
docker exec -it cc58908a8dc2 /bin/bash
我之前在其他容器上运行此命令,它工作得很好。 但是,现在我遇到了这个问题:
unable to find user root: no matching entries in passwd file
我的Dockerfile
具有以下内容:
# We will be running our Spark jobs as `root` user.
USER root
# Working directory is set to the home folder of `root` user.
WORKDIR /root
有什么可能导致这种情况的想法吗?
答案 0 :(得分:16)
有时,重新启动Docker容器后会显示该消息。
如果不是像这样重新启动:
docker restart cc58908a8dc2
我停下来,像这样启动容器:
docker stop cc58908a8dc2
docker start cc58908a8dc2
然后错误就消失了。
答案 1 :(得分:1)
如果要解决此问题,请记住对https://forums.docker.com/t/unable-to-find-user-root-no-matching-entries-in-passwd-file/26545/9进行评论
还使用知识库文章中的“反馈”按钮,该文章记录了遇到时如何重启Docker引擎:https://success.docker.com/article/ucp-health-checks-fail-unable-to-find-user-nobody-no-matching-entries-in-passwd-file-observed
似乎互联网上充斥着随机遇到此错误的其他人。
要了解您必须进行哪些更改,请查看http://status.openstack.org/elastic-recheck/index.html#1803544,它是OpenStack CI作业中发生的错误的图表,每天都会发生。
我知道任何软件都有错误,并且需要花费一些时间来修复,但是这个错误使我离开……。两年多来,Docker的唯一反馈是“ tracker privatly”和“ restart docker”。
答案 2 :(得分:1)
重新启动容器通常会有所帮助(请参阅@octavian答案)。如果没有选择,请尝试:
docker exec -it -u 0 cc58908a8dc2 / bin / bash
其中 cc58908a8dc2 是您的容器的名称