尝试熟悉 ECR - 我知道您应该能够将任意数量的存储库推送到 Docker 注册表。
然而,ECR 有一个“存储库”的概念。所以如果我有 10 个不同的容器组成我的应用程序,这是否意味着我需要 10 个仓库中的注册表?
我可以拥有一个存储库并使用它们的“最新”标签推送 10 个不同的容器吗?
目前,如果我用相同的 {registry}/{repository_name} 模式标记另一个图像,它会替换latest
我另一个图像上的标记:
尝试熟悉 ECR - 我知道您应该能够将任意数量的存储库推送到 Docker 注册表。
然而,ECR 有一个“存储库”的概念。所以如果我有 10 个不同的容器组成我的应用程序,这是否意味着我需要 10 个仓库中的注册表?
我可以拥有一个存储库并使用它们的“最新”标签推送 10 个不同的容器吗?
目前,如果我用相同的 {registry}/{repository_name} 模式标记另一个图像,它会替换latest
我另一个图像上的标记:
如果您想获得详细说明,我会查看什么是 Amazon EC2 容器注册表?page,详细描述了组件,但两者之间的高级区别是:每个帐户都有一个Registry,每个 Registry可以包含多个存储库。每个存储库可以包含多个图像。一个图像可以有多个标签,一个标签每个 Repository 只能存在一次。
如果您查看对存储库的引用:
[account].dkr.ecr.[region].amazonaws.com/[repository_name]
第一个前面的部分/
是您的注册表,第一个后面的部分/
是您的存储库。
因此,您在这里遇到的是,通过将第二个图像推送到同一个存储库,您正在更改latest
标记指向的引用。
如果您想拥有多个不同的图像,每个图像都有自己的latest
标签,那么每个图像都应该有自己的存储库。根据 ECR 的定价,您只需根据存储大小付费并从 ECR 存储库转移,因此不创建额外的存储库几乎没有什么好处。