从dockerhub中获取最新图像

Sau*_*hah 6 docker dockerhub

假设dockerhub上有一个用户存储库,其中包含3个映像。图像被标记为ABC。这C是我的最新标签。

现在我不知道这些标签。当我这样做时docker pull user/image,这给了我一个错误Tag latest not found in repository docker.io/user/image。如何使用最新标签(C在这种情况下)提取图像。

two*_*its 5

是的,我绝对同意:最新标签令人困惑。实际上,最新标签不一定指向图像的最新版本。我们来看一下:

1)当您在未指定标签名称的情况下拉取映像时,Docker将尝试拉取标记为“最新”的映像

2)当您在对注册表进行推送操作之前未标记映像时,Docker会自动为其赋予“最新”标记

3)当您对映像进行标记并且听起来就是您正在做的事情时,Docker永远不会标记带有“最新”的内容;然后,您必须手动应用“最新”标签

从我的角度来看,“最新”标签应该是“默认”标签,并且应理解为当在pull命令中未指定标签名称时从注册表中提取的默认映像。

请参阅此答案以获取有关如何应用多个标签的更多信息: 如何在Docker中创建命名和最新标签?

  • 它并没有真正回答“如何提取最新图像?”的问题。 (2认同)
  • @SerG - 因为*无法提取最新的图像*。它不会自动神奇地工作。相反,当“推送”图像时,您必须做一些特殊的事情。如果您点击答案中的链接,您将看到包含详细信息的问答。 (2认同)

Sau*_*hah 3

我想我得到了问题的答案:

curl -s -S "https://registry.hub.docker.com/v2/repositories/repo/image/tags/" | jq '."results"[]["name"]'会给我 dockerhub 存储库中所有标签的列表。然后我可以轻松地通过管道来sed -n 1p获取最新的提交。