docker pull 不会从远程拉取最新的镜像

docker pull wouldn't pull latest image from remote

我运行这个:

docker pull 91xxxxx371.dkr.ecr.us-west-2.amazonaws.com/main_api

并没有提取任何新内容,但我知道 AWS/ECR 上有新图像。 所以我删除了现有的图像:

docker rmi 91xxxxx371.dkr.ecr.us-west-2.amazonaws.com/main_api

然后再拉,当然它说它检索了新图像,但这可能只是因为我删除了本地 tags/images 或其他什么。

为什么第一个拉取命令没有得到最新的?它默认为最新标签。

更新: 我必须更正我的答案,@David Maze(评论)是正确的:我描述了 docker run 行为。

来自 Docker 文档:

When using tags, you can docker pull an image again to make sure you have the most up-to-date version of that image

所以你的命令应该有效,我不知道为什么它不起作用,抱歉。 但是尽管如此,您可以使用标签作为变通方法来强制拉取具有指定标签的图像。


docker run(不是 docker pull)首先在您计算机上的本地注册表中搜索。如果有标签为latest的图片,则满足并终止搜索。如果带有给定标签的图像在您的本地注册表中不可用,那么 docker 将在远程注册表中搜索,例如 docker 集线器或您自己的。

所以标签latest应该小心使用。如果您的本地注册表中有一个带有标签 latest 的图像,那么您必须先将其删除,这样 docker 什么也得不到并在远程注册表中搜索。