尝试熟悉 ECR - 我知道您应该能够将任意数量的存储库推送到 Docker 注册表。
但是,ECR 有一个“存储库”的概念。 因此,如果我的应用程序由 10 个不同的容器组成,这是否意味着我需要在注册表中使用 10 个存储库?
我可以拥有一个存储库并推送 10 个带有“最新”标签的不同容器吗?
目前,如果我使用相同的 {registry}/{repository_name} 模式标记另一个图像,它将替换我的其他图像上的 latest
标记:
最佳答案
如果您想获得详细说明,我会查看What Is Amazon EC2 Container Registry?页面,其中详细描述了组件,但两者之间的高级区别是:每个帐户都有一个注册表,每个注册表可以包含多个存储库。 每个存储库可以包含多个图像。一个图像可以有多个标签,每个存储库一个标签只能存在一次。
如果您查看对存储库的引用:
[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 ,因此不创建额外的存储库几乎没有什么好处。
关于amazon-ecs - ECR - 什么是注册表,什么是存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46230838/