26

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

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

我可以拥有一个存储库并使用它们的“最新”标签推送 10 个不同的容器吗?

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

ECR 概述

4

1 回答 1

29

如果您想获得详细说明,我会查看什么是 Amazon EC2 容器注册表?page,详细描述了组件,但两者之间的高级区别是:每个帐户都有一个Registry每个 Registry可以包含多个存储库每个存储库可以包含多个图像。一个图像可以有多个标签,一个标签每个 Repository 只能存在一次

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

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

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

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

如果您想拥有多个不同的图像,每个图像都有自己的latest标签,那么每个图像都应该有自己的存储库。根据 ECR 的定价,您只需根据存储大小付费并从 ECR 存储库转移,因此不创建额外的存储库几乎没有什么好处。

于 2017-09-15T14:39:51.813 回答