正在提取Docker图像-未找到清单

ki0zmccv  于 2023-03-17  发布在  Docker
关注(0)|答案(7)|浏览(154)

我想下载一个标记的Docker图像

docker pull clkao/postgres-plv8:10-2

并且,在合成文件中,

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

但是收到一个manifest not found异常。
除非我弄错了,that tag exists在Docker Hub中,但是我注意到它没有出现在tags list上。
我做错了什么吗?或者这可能是Docker Hub的问题或者回购协议的设置方式?
如果这不是“我的错”,有什么建议继续前进?也许创建我自己的Dockerfile?

bwleehnv

bwleehnv1#

您也可以尝试docker pull -a <image>-a将拉取该映像的所有版本,这至少让您知道那里有什么。
(This如果您真的需要特定的版本,它就不那么有用了,但当我试图拉出一个由于某种原因没有“最新”标记的图像时,它帮助了我。)

编辑:这实际上是一个非常 * 糟糕 * 的主意,因为它会拉下整个历史记录,对于许多存储库来说,这可能是许多GB。最好去看看存储库网站,看看你想要什么标记。不要在你累的时候发布答案。:-(

osh3o9ms

osh3o9ms2#

您得到错误消息是因为不存在带有“10-2”的标记。
您可以尝试找出原因并联系存储库所有者,也可以尝试构建自己的存储库。

2izufjch

2izufjch3#

我刚看完这个“清单/未找到:清单未知:注册表无法识别命名的清单。”
使用

docker login <repo>
u7up0aaq

u7up0aaq4#

检查docker的图像也不仅是标签存在,我试图运行Flyway版本5.0.1的图像flyway/flyway哪个版本不存在,它只存在于版本flyway/flyway:最新的似乎,而5.0.1存在,我拉它,但在/从不同的仓库名称,与仓库名称boxfuse/flyway.
对于错误消息“Docker清单未知”

vybvopom

vybvopom5#

当您使用docker pull时,如果没有标签,它将默认为标签:latest。请确保在构建映像时添加最新标签,或者我们可以通过标签名称(在映像名称之后加上冒号)访问映像

cbeh67ev

cbeh67ev6#

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

  • Docker构建版本-t clkao/postgres-pl:版本8.10.2。
  • 码头工推送clkao/postgres-pl:v8.10.2
  • 码头牵拉clkao/postgres-pl:v8.10.2
7fyelxc5

7fyelxc57#

如果这是通过docker.pkg.github.com从Git获得的,那么你需要切换到ghcr.io。前者已被弃用,不支持manifest端点,因此一些Docker客户端在尝试下载各种资源时会失败,并显示此错误消息。如果你将图像发布到ghcr(Github Container Repository),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包简介”和“使用容器注册表启用改进的容器支持”。

相关问题