我根据一些项目创建了一个名为“ helloworld ”的图像。
如果我运行:
码头工人图像
我可以在列表顶部看到它。
现在,如果我想运行它,码头工人会抱怨它不存在。
运行此:
docker run -p 8080:8080 helloworld
返回此:
docker:来自守护程序的错误响应:helloworld的请求访问被拒绝, 存储库不存在或可能需要'docker login':拒绝: 请求的对资源的访问被拒绝。请参阅“ docker run --help”。
为什么docker抱怨我的映像不存在?
答案 0 :(得分:1)
您的图片构建命令:
docker build --rm -f "Dockerfile" -t helloworld:1.0 "."
您的图像名称是helloworld:1.0
如果您运行过docker build --rm -f "Dockerfile" -t helloworld "."
那么您的图片名称是helloworld
或helloworld:latest
,那么您的第一次尝试就可以了。
要解决您的问题,请改用以下方法:
docker run -p 8080:8080 helloworld:1.0
答案 1 :(得分:1)
它抱怨,因为:
dx
是此版本的简化版本:
docker run -p 8080:8080 helloworld
,然后根据截图将您的图片命名为
docker run -p 8080:8080 docker.io/library/helloworld:latest
因此正确的命令(跳过默认前缀)为:
docker.io/library/helloworld:1.0
答案 2 :(得分:1)
其他答案是正确的,但没有清楚解释为什么它们是正确的。
docker run
命令需要一个图像名称以及一个可选的标签(即docker run IMAGE[:TAG]
)。如果未提供标签,则默认值为latest
。
运行docker run helloworld
等效于docker run helloworld:latest
,但是根据docker images
,此图像在OP的系统中不存在。
解决方案是指定图像标签:helloworld:1.0
。