无法在本地找到 docker 图片

Unable to find docker image locally

我正在关注 this post - the reference code is on GitHub。我已经在本地克隆了存储库。

该项目内部有一个 React 应用程序。我正在尝试 运行 在本地 步骤 7 之后 same post:

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

这个returns:

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 但它不是节点上的简单反应应用程序 运行ning - 它在容器中并且容器不受 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 mac 上的这张 docker 图片?

Well this is anti-logical but still sharing so future people like me don't get stuck

所以问题是我试图 运行 docker 图像

我需要构建图像:

docker build . -t xameeramir/cra-docker

然后运行它:

docker run -p 8080:80 xameeramir/cra-docker

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

我在 键入 name/character 错误 时收到此错误消息。也就是说,"name1\name2" 而不是 "name1/name2"(错误的斜杠)。

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

就我而言,我在 docker 桌面上登录 dockerhub 时看到了这个错误。我提取的回购是我企业本地的。一旦我退出 dockerhub,拉动就成功了。

在我的例子中,我的图片指定了 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 对我有用

这刚好发生在我身上,因为我在 macOS 运行 上的本地 docker 虚拟机 space 磁盘不足 space。

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

在我的例子中,docker 图像确实存在于系统中,但我仍然无法在本地 运行 容器,所以我使用了准确的图像 ID 而不是图像名称和标签,像这样:

docker run myContainer c29150c8588e

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

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

在我的例子中,我没有意识到 docker rundocker start 之间的区别,我一直在使用 运行 命令,而我本应该使用启动命令。

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

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

docker image list

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

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

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

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

下面的命令:

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

总之,您的 docker 图像平台和 docker 运行 平台需要与我所经历的相同。