ECR - 什么是注册表,什么是存储库

ECR - What is the registry and what is a repository

尝试熟悉 ECR - 我知道您应该能够将任意数量的存储库推送到 Docker 注册表。

然而,ECR有一个'repository'的概念。 所以如果我有 10 个不同的容器组成我的应用程序,这是否意味着我需要在注册表中有 10 个存储库?

我可以拥有一个存储库并推送 10 个带有 'latest' 标签的不同容器吗?

目前,如果我用相同的 {registry}/{repository_name} 模式标记另一张图片,它会替换我另一张图片上的 latest 标签:

如果你想获得详细的描述,我会查看 What Is Amazon EC2 Container Registry? 页面,其中详细描述了组件,但两者之间的高级区别是:Each帐户 有一个注册表每个注册表 可以包含多个存储库每个存储库 可以包含多个图像。一个图像可以有多个标签,每个存储库一个标签只能存在一次

如果您查看对存储库的引用:

[account].dkr.ecr.[region].amazonaws.com/[repository_name]

第一个 / 前面的部分是您的注册表,第一个 / 之后的部分是您的存储库。

所以你在这里遇到的是,通过将第二个图像推送到同一个存储库,你正在更改 latest 标记指向的引用。

如果您想要多个不同的图像,每个图像都有自己的 latest 标签,每个图像都应该有自己的存储库。基于 ECR 的定价,you only pay based on the storage size and transfer from an ECR Repo,所以不创建额外的回购几乎没有什么好处。