docker pull -a <image>
命令,-a
选项会拉取该镜像的所有版本,至少让你知道有哪些。如果你需要特定版本,则这种方法就不那么有用了,但当我尝试拉取一个没有"latest"标签的镜像时,这个方法帮了我大忙。
编辑: 这实际上是一个非常糟糕的主意,因为它将拉取整个历史记录,而对于许多代码库来说,它可能是几GB的大小。更好的方式是去查看代码库网站,看看你想要哪个标签。注意:不要在疲倦时发布答案。 :-(-a
标志后,需要进行大量的清理工作,但它确实让我看到了我的问题。我只是把次版本号上漏掉了一个零,导致本来应该是 ubuntu:20.04
的东西最终变成了 ubuntu:20.4
,这也是导致错误/阻塞的原因。 - Neil Gaetano Lindberg你收到这个错误信息是因为不存在名为"10-2"的标签。
你可以尝试找出原因并联系存储库所有者,或者你可以尝试构建自己的标签。
docker login <repo>
检查 Docker 镜像不仅要检查标签是否存在,我试图在 flyway/flyway 的镜像上运行 Flyway 版本 5.0.1,但该版本不存在,只存在于 flyway/flyway:latest 版本中,而 5.0.1 版本是存在的,我已经拉取了它,但是从不同的存储库名称 boxfuse/flyway 中。
对于错误消息 'docker manifest unknown'
当您使用docker pull时,如果没有指定标签,它将默认使用标签:latest
。确保在构建镜像时添加最新的标签,或者我们可以通过图像名称后面带有冒号的标签名称访问该图像。
我觉得你正在尝试将你的图像标记为v8.10.2,请确保在本地标记图像时,使用您未来想要拉取的相同标记。所以步骤如下:
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>
注意:容器注册表目前处于公共测试阶段,可能会有变动。在测试期间,存储和带宽是免费的。要使用容器注册表,您必须启用功能预览。有关更多信息,请参阅“GitHub Packages简介”和“使用容器注册表启用改进的容器支持”。
ubuntu:20.4
,但实际上我应该使用ubuntu:20.04
。因此,我建议首先检查 Docker Hub 上是否存在该标签。 - Neil Gaetano Lindberg