73

我正在关注这篇文章- 参考代码在GitHub 上。我已经在本地克隆了存储库。

该项目内部有一个反应应用程序。我正在尝试在同一篇文章的第 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过,但它不是在节点上运行的简单反应应用程序 - 它在容器中,容器不受控制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 镜像?

4

12 回答 12

46

嗯,这是反逻辑的,但仍然分享,所以像我这样的未来人不会被卡住

所以问题是我试图运行一个不存在的 docker 镜像。

我需要构建图像:

docker build . -t xameeramir/cra-docker

然后运行它:

docker run -p 8080:80 xameeramir/cra-docker
于 2019-06-09T08:07:11.343 回答
24

在我的情况下,我的图像指定了 TAG,我没有使用它。

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
testimage          testtag            189b7354c60a        13 hours ago        88.3MB

Unable to find image 'testimage:latest' locally对于这个命令docker run testimage

所以像这样指定标签 -docker run testimage:testtag对我有用

于 2020-06-10T09:55:32.890 回答
6

当我输入名称/字符错误时收到此错误消息。也就是说,“name1\name2”而不是“name1/name2”(斜线错误)。

于 2020-01-31T20:22:25.487 回答
4

就我而言,系统上确实存在 docker 映像,但我仍然无法在本地运行容器,因此我使用了确切的映像 ID 而不是映像名称和标签,如下所示:

docker run myContainer c29150c8588e
于 2021-06-21T17:53:09.313 回答
2

就我而言,当我在我的 docker 桌面上登录到 dockerhub 时,我看到了这个错误。我正在提取的 repo 是我的企业本地的。一旦我退出 dockerhub,pull 就起作用了。

于 2020-06-09T18:36:27.127 回答
2

这只是发生在我身上,因为我在 macos 上的本地 docker vm 磁盘空间不足。

我刚刚删除了一些旧图像docker image prune,它再次开始正常工作。

于 2020-08-21T18:15:28.400 回答
1

shakyshane/cra-docker 该用户的仓库中不存在https://hub.docker.com/u/shakyshane/

于 2019-06-09T12:11:32.677 回答
1

问题是您正在尝试运行不存在的图像。如果您正在执行 Dockerfile,则在 Dockerfile 通过且没有错误之前不会创建映像;所以当 Dockerfile 尝试运行镜像时,它找不到它。确保在执行脚本时没有错误。

于 2020-04-22T12:27:38.180 回答
1

最简单的答案可能是正确的答案!..确保您有权执行命令,使用:

sudo docker run -p 8080:80 shakyshane/cra-docker

于 2021-10-18T20:23:07.943 回答
1

就我而言,我没有意识到 and 之间有区别docker rundocker start当我应该使用 start 命令时,我一直使用 run 命令。

仅供参考,run用于构建和创建 docker 容器,start只是启动一个停止的容器

于 2021-12-13T04:29:53.983 回答
0

您可以使用以下命令列出 CLI 中的所有标签:

docker image list
于 2022-02-09T23:15:59.123 回答
0

发布我的解决方案,因为上述方法均无效。在 macbook M1 pro 上工作。

我遇到的问题是图像是作为 arm/64 构建的。我正在运行命令:

docker run --platform=linux/amd64 ...

所以我必须为 amd/64 平台构建镜像才能运行它。

下面的命令:

docker buildx build --platform=linux/amd64 ...

总之,根据我的经验,您的 docker 镜像平台和 docker run 平台需要相同。

于 2022-02-25T17:41:09.680 回答