正在从dockerhub提取最新图像

xdyibdwo  于 2022-11-28  发布在  Docker
关注(0)|答案(4)|浏览(127)

假设在dockerhub上有一个用户仓库,里面有3张图片,图片的标签分别是ABC,这里C是我最新的标签。
现在我不知道这些标签。当我做一个docker pull user/image,这给了我一个错误,说Tag latest not found in repository docker.io/user/image。我怎么能拉图像与最新的标签(C在这种情况下)。

bn31dyow

bn31dyow1#

是的,我绝对同意:latest标签让人困惑。latest标签实际上并不一定指向图像的最新版本。让我们来看看:
1)当您提取图像而不指定标记名称时,Docker将尝试提取标记为“最新”的图像
2)如果您在向注册表执行推送操作之前没有标记图像,Docker将自动为其指定“最新”标记
3)当你标记你的图片,它听起来像是你正在做什么,Docker将永远不会标记任何与'最新';然后,您必须手动应用"latest“标记
从我的观点来看,“latest”标记应该是一个“default”标记,并被理解为从注册表中拉取的默认图像,而在拉取命令中没有指定标记名称。
有关如何应用多个标记的详细信息,请参阅此答案:How to create named and latest tag in Docker?

esbemjvw

esbemjvw2#

“latest”标签的一种理解方式就像git中的“master”标签,事实上,我希望他们也这么叫它!
如果你克隆一个git repo而没有指定分支,你将得到'master'分支,即使更新可能已经被推送到其他分支。
如果你拉一个Docker图像,你会得到“最新”标签,即使其他图像可能已经被推到其他标签更近:-)

guykilcj

guykilcj3#

我想我得到了我问题的答案:
curl -s -S "https://registry.hub.docker.com/v2/repositories/repo/image/tags/" | jq '."results"[]["name"]'将给我dockerhub库中所有标记的列表,然后我可以很容易地用sed -n 1p将其传输到管道中以获得最新的提交。

cpjpxq1n

cpjpxq1n4#

您也可以使用以下格式:
https://github.com/koudaiii/qucli/issues/47#issuecomment-503066074

相关问题