我在docker hub中有一个名为shaktidocker的仓库,它是公开的。我在存储库中有一张图片。
当我尝试使用下一条命令从本地docker开发主机运行该映像时:
docker run -P -d shaktidocker/docker-spring-boot-demo
它给了我下面的错误:
e75c891fa5403b0bb6ed1aa3b5e6a6760d4707219ecaff22727632cca741fa25
/ usr / bin / docker-current:来自守护程序的错误响应:linux spec用户: 无法找到用户shaktidocker:passwd文件中没有匹配的条目。
当我尝试从不同的公共仓库运行不同的图像时,它运行得很好。
请告知
答案 0 :(得分:1)
您最常使用的Dockerfile包含以下行:
USER shaktidocker
这是在容器内定义Linux用户以运行命令,而不是Docker Hub上的用户ID。您很可能希望在尝试再次运行它之前,从Dockerfile中删除此行,重建,推送和拉取您的映像。
答案 1 :(得分:0)
由于某种原因,当您想默认启动容器时,似乎将存储库的名称用作运行容器的默认用户名。此用户名在基础系统中不存在,因此容器无法启动。
您可以尝试定义一个用来启动图像的用户:
docker run -P -d --user nobody shaktidocker/docker-spring-boot-demo
这样,您应该可以启动容器。