拉取Docker镜像 - 找不到清单

41

我正在尝试下载一个带有标签的 Docker 镜像

docker pull clkao/postgres-plv8:10-2

在Compose文件中,

  postgres:
    image: clkao/postgres-plv8:10-2

但收到了“找不到清单”异常。

除非我搞错了, 那个标签 在 Docker Hub 中是存在的,但是我注意到它在 标签列表 上并没有出现。

我做错了什么吗?还是这可能是Docker Hub或存储库设置方式的问题?

如果不是“我的错”,有什么建议可以继续前进吗?也许创建自己的Dockerfile?


Docker 版本? - Yonah Dissen
你好。Docker版本为18.03.1-ce,构建版本为9ee9f40。这会影响可发现的标签吗? - Damien Sawyer
2
请查看回答,它说这个东西根本不存在。这就是我遇到这个错误的原因。我使用了 ubuntu:20.4,但实际上我应该使用 ubuntu:20.04。因此,我建议首先检查 Docker Hub 上是否存在该标签。 - Neil Gaetano Lindberg
9个回答

25
你也可以尝试使用docker pull -a <image>命令,-a选项会拉取该镜像的所有版本,至少让你知道有哪些。如果你需要特定版本,则这种方法就不那么有用了,但当我尝试拉取一个没有"latest"标签的镜像时,这个方法帮了我大忙。 编辑: 这实际上是一个非常糟糕的主意,因为它将拉取整个历史记录,而对于许多代码库来说,它可能是几GB的大小。更好的方式是去查看代码库网站,看看你想要哪个标签。注意:不要在疲倦时发布答案。 :-(

4
在 Ubuntu 中使用 -a 标志后,需要进行大量的清理工作,但它确实让我看到了我的问题。我只是把次版本号上漏掉了一个零,导致本来应该是 ubuntu:20.04 的东西最终变成了 ubuntu:20.4,这也是导致错误/阻塞的原因。 - Neil Gaetano Lindberg
4
最好获取该图像的所有标签列表,而不是拉取它们。请查看有关获取所有标记列表的问题:https://dev59.com/wF4c5IYBdhLWcg3wFm84 - ge333
@ge333 谢谢你!从各种答案来看,正确设置可能有点复杂,但只有标签而没有所有图像肯定是更可取的。 - Denise Draper

13

你收到这个错误信息是因为不存在名为"10-2"的标签。
你可以尝试找出原因并联系存储库所有者,或者你可以尝试构建自己的标签。


7
我刚刚遇到了这个问题:“manifest for / not found: manifest unknown: The named manifest is not known to the registry。”
使用中。
docker login <repo>

1
基本上,当使用任何Docker镜像的旧标签时,会出现“manifest unknown: The named manifest is not known to the registry.”的问题,请检查该镜像上的标签是否有效,然后使用新的/更新的Docker镜像重新运行。
希望这样能解决问题...享受工作吧....!!!

1
我们的内部注册表发生了类似的情况。我只是再次推送了镜像,然后再拉取。

1
根据目前的写法,你的回答不够清晰。请编辑以添加更多细节,以帮助他人理解如何解答所提出的问题。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - undefined

0

检查 Docker 镜像不仅要检查标签是否存在,我试图在 flyway/flyway 的镜像上运行 Flyway 版本 5.0.1,但该版本不存在,只存在于 flyway/flyway:latest 版本中,而 5.0.1 版本是存在的,我已经拉取了它,但是从不同的存储库名称 boxfuse/flyway 中。

对于错误消息 'docker manifest unknown'


0

当您使用docker pull时,如果没有指定标签,它将默认使用标签:latest。确保在构建镜像时添加最新的标签,或者我们可以通过图像名称后面带有冒号的标签名称访问该图像。


0

我觉得你正在尝试将你的图像标记为v8.10.2,请确保在本地标记图像时,使用您未来想要拉取的相同标记。所以步骤如下:

  • docker build -t clkao/postgres-pl:v8.10.2 .
  • docker push clkao/postgres-pl:v8.10.2
  • docker pull clkao/postgres-pl:v8.10.2

0
如果您是从 Git 通过 docker.pkg.github.com 获取内容,那么您需要切换到使用 ghcr.io。前者已被弃用,并且不支持清单端点,因此某些 Docker 客户端在尝试下载各种资源时会出现错误消息。如果您将镜像发布到 ghcr(Github 容器仓库),则 Docker 镜像拉取过程应该可以成功完成。
cd <dir with Dockerfile in it>
docker build -f Dockerfile -t ghcr.io/<org_id>/<project_id>:<version> .
docker push ghcr.io/<org_id>/<project_id>:<version>

更多信息请参见:https://docs.github.com/en/packages/working-with-a-github-packages-registry/migrating-to-the-container-registry-from-the-docker-registry

注意:容器注册表目前处于公共测试阶段,可能会有变动。在测试期间,存储和带宽是免费的。要使用容器注册表,您必须启用功能预览。有关更多信息,请参阅“GitHub Packages简介”和“使用容器注册表启用改进的容器支持”。


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