拉码头图像 - 找不到清单

时间:2018-05-23 00:06:34

标签: docker docker-compose

我正在尝试下载带标记的泊坞窗图片

docker pull clkao/postgres-plv8:10-2

,在撰写文件中

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

但是收到manifest not found例外。

除非我错了,在Docker Hub中that tag exists,但我注意到它没有出现在tags list上。

我做错了吗?或者这可能是Docker Hub的问题还是repo的设置方式?

如果不是'我的错',推荐什么是推荐?也许创建我自己的Dockerfile?

感谢。

8 个答案:

答案 0 :(得分:1)

如果您在Windows上运行Docker,请尝试将Docker切换到Linux。切换完成后,Docker再次运行,然后尝试再次执行docker pull。

答案 1 :(得分:1)

您也可以尝试 docker pull -a <image>-a将提取该图像的所有版本,这至少会让您知道其中的内容。

(如果您确实需要特定的版本,这将不太有用,但是当我尝试拉出由于某种原因而没有“最新”标签的图像时,对我有帮助。)

编辑:这实际上是一个的主意,因为它将删除整个历史记录,对于许多存储库来说,这可能是许多GB。最好去查看存储库站点并查看所需的标签。自我提醒:疲倦时不要发布答案。 :-(

答案 2 :(得分:0)

您收到错误消息,因为没有标记为“10-2” 您可以尝试找出原因并与存储库所有者联系,或者您可以尝试构建自己的存储库。

答案 3 :(得分:0)

还要检查docker的映像,不仅该标签存在,我还尝试为不存在该版本的映像flyway / flyway运行Flyway版本5.0.1,它仅存在于flyway / flyway版本中:而5.0.1存在,我从其他存储库名称中提取了它,但使用的是存储库名称boxfuse / flyway。

对于错误消息“码头工人清单未知”

答案 4 :(得分:0)

我刚刚克服了这个“清单/未找到:清单未知:注册表不知道命名清单。”

使用

docker login <repo>

答案 5 :(得分:0)

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

答案 6 :(得分: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

答案 7 :(得分:0)

如果这是通过 docker.pkg.github.com 来自 Git,那么您需要切换到使用 ghcr.io。前者已弃用,并且不支持清单端点,因此某些 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

<块引用>

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