本地找不到Docker镜像

107
我正在关注这篇文章- 参考代码在GitHub上。我已经在本地克隆了该存储库。
该项目内部有一个React应用程序。 我正尝试按照同一篇文章上的第7步在本地运行它:
docker run -p 8080:80 shakyshane/cra-docker

这将返回:

Unable to find image 'shakyshane/cra-docker:latest' locally
docker: Error response from daemon: pull access denied for shakyshane/cra-docker, repository does not exist or may require 'docker login'.
See 'docker run --help'.

我尝试重新登录docker,但似乎由于它属于@shakyShane,我无法访问它。

我很傻地尝试了npm start,但它不是在node上运行的简单的react应用程序 - 它在容器中,而容器不受npm控制。

看起来docker pull shakyshane/cra-docker:latest会抛出这个错误:

Error response from daemon: pull access denied for shakyshane/cra-docker, repository does not exist or may require 'docker login'

那么问题来了,我如何在我的本地Mac机器上运行这个Docker镜像?


5
请使用命令"docker pull shakyshane/cra-docker:latest"拉取Docker镜像。 - rajashekar
@rajashekar 我现在就试一下。谢谢! - Zameer Ansari
2
在第六步中,您使用了哪个精确的构建命令? - Joachim Isaksson
4
第6步指示你运行命令docker build . -t shakyshane/cra-docker。这将使用名称为shakyshane/cra-docker的镜像构建,而你在第7步中正在尝试使用该镜像。由于找不到该镜像,似乎并没有构建该镜像,至少没有使用相同的名称构建。 - Joachim Isaksson
不幸的是,我发现自己处于这种情况:图像存在,但docker run命令来自一个shell脚本,在终端上从与命令本身相同的目录执行。因此,当手动运行命令时,它可以正常运行。但是,当从同一目录级别的shell脚本运行相同的命令时,它会失败...如果您读到这篇文章并遇到了相同的问题,也许可以提出一个新的问题。 - Bart McLeod
显示剩余2条评论
14个回答

1
在我的情况下,我没有意识到docker rundocker start之间存在差异,因此我一直在使用run命令,而应该使用start命令。请注意,run用于构建和创建Docker容器,start仅用于启动已停止的容器。

0
自 Docker 23.0 版本以来,docker build 已成为 docker buildx build 的别名。
您可能正在使用自定义构建器实例。
使用此命令将构建器实例设置为默认值,然后再次运行构建命令。
docker buildx use default

0

首先,我用这个命令在mac-m1-pro上构建镜像:docker build -t hello_k8s_world:0.0.1 .,但是当运行这个镜像时出现了问题。

阅读了 Master Yi 的答案后,我意识到问题的关键并像这样重新构建了我的镜像:docker build --platform=arm64 -t hello_k8s_world:0.0.1 .

最终,它运行成功了。


0

使用 -d

sudo docker run -d -p 8000:8000 rasa/duckling

在这里了解 -d

sudo docker run --help

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接