我跑了这个:
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 命令没有得到最新的?它默认为最新标签。
最佳答案
更新:
我必须更正我的答案,@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 hub 或您自己的。所以标签
latest
应谨慎使用。如果您有带有标签的图像 latest
在您的本地注册表中,然后您必须先将其删除,因此 docker 一无所获并在远程注册表中搜索。
关于docker pull 不会从远程拉取最新的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56286929/