从dockerhub中提取最新图像

从dockerhub中提取最新图像,docker,dockerhub,Docker,Dockerhub,假设dockerhub上有一个用户存储库,它有3个映像。图像被标记为A、B和C。这里C是我最新的标签 现在我不知道这些标签。当我执行docker pull user/image时,会出现一个错误,即在存储库docker.io/user/image中找不到标记latest。如何提取带有最新标签的图像(在本例中为C)是的,我完全同意:最新标签令人困惑。最新标签实际上并不一定指向图像的最新版本。我们来看看, 1) 当您在不指定标记名的情况下提取图像时,Docker将尝试提取标记为“最新”的图像 2)

假设dockerhub上有一个用户存储库,它有3个映像。图像被标记为
A
B
C
。这里
C
是我最新的标签


现在我不知道这些标签。当我执行
docker pull user/image
时,会出现一个错误,即在存储库docker.io/user/image中找不到
标记latest。如何提取带有最新标签的图像(在本例中为
C

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

1) 当您在不指定标记名的情况下提取图像时,Docker将尝试提取标记为“最新”的图像

2) 当您在将操作推送到注册表之前未标记图像时,Docker将自动为其提供“最新”标记

3) 当你标记你的图像时,听起来就像你在做什么,Docker永远不会标记任何带有“最新”的东西;然后,您必须手动应用“最新”标记

从我的观点来看,“latest”标记应该是一个“default”标记,当pull命令中没有指定标记名时,应该理解为从注册表中提取的默认图像

有关如何应用多个标记的更多信息,请参阅此答案:
我想我得到了我问题的答案:


curl-s-s”https://registry.hub.docker.com/v2/repositories/repo/image/tags/“|jq.”“results”[“name”]”
将为我提供dockerhub存储库中所有标记的列表。然后,我可以很容易地使用sed-n1p进行管道传输,以获得最新的提交。

考虑“最新”标记的一种方法类似于git中的“主”标记。事实上,我真希望他们这么说

如果您克隆一个git repo而不指定分支,那么您将获得“master”分支,即使最近可能在其他分支上推送了更新


如果你拉一个Docker图像,你会得到“最新”的标签,即使其他图像最近可能被推到了其他标签上:-)

,这与推到git回购而不指定标签会自动成为主人的头有很大区别;但与git不同,在git中,如果您再次从master“拉”,您将收到自上次拉之后的更改,如果您从Docker拉“latest”,并且您已经有了“latest”,则不会有任何更改。但是当我尝试拉取图像而不指定标记时,我得到了“在存储库Docker.io/landpack/hello中找不到标记latest”。为什么?它并没有真正回答“如何获取最新图像?”@SerG-因为无法获取最新图像。它不会自动神奇地工作。相反,在推送图像时,您必须执行一些特殊的操作。如果您按照答案中的链接进行操作,您将看到一个包含详细信息的问答。