4

我跑了这个:

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

然后再次拉出,当然它说它检索到了新图像,但这可能只是因为我删除了本地标签/图像或其他任何东西。

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

4

1 回答 1

5

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

从 Docker 文档中:

使用标签时,您可以再次 docker pull 图像以确保您拥有该图像的最新版本

所以你的命令应该可以工作,我不知道为什么它不工作,对不起。但是,尽管如此,您仍可以将标签用作解决方法,以强制使用指定标签提取图像。


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

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

于 2019-05-24T07:03:34.567 回答