[英]Storing images in AWS ECR using namespaces
AWS 声称支持 repos 上的命名空间规则,但我不遵循您应该如何设置它们。 根据这里的文档:
存储库名称可以支持命名空间,您可以使用命名空间对相似的存储库进行分组。 例如,如果有多个团队使用相同的注册表,则团队 A 可以使用 team-a 命名空间,而团队 B 使用 team-b 命名空间。 每个团队都可以拥有自己的名为 web-app 的图像,但由于它们都以团队命名空间为前缀,因此可以同时使用两个图像而不会相互干扰。 团队 A 的图像将称为 team-a/web-app,而团队 B 的图像将称为 team-b/web-app。
因此,我们在注册表中创建了一个位于<registry ID>.dkr.ecr.<region>.amazonaws.com/mycompany/myproj
基于此,我希望能够在这个myproj
命名空间中存储多个图像,例如:
<registry ID>.dkr.ecr.<region>.amazonaws.com/mycompany/myproj/imageone:latest
<registry ID>.dkr.ecr.<region>.amazonaws.com/mycompany/myproj/imagetwo:latest
但是,当我尝试推送这些图像之一时,它告诉我存储库mycompany/myproj/imageone
不存在。 我不知道为什么它认为imageone
是我的存储库名称的一部分,而不是我的图像名称:tag。 我在这里的存储库命名方式或我命名/标记图像的方式有问题吗?
ECR 不支持“命名空间”作为分层分组概念。 虽然 ECR 具有扁平结构,但通常在存储库名称中使用斜杠来组织存储库。
在您的示例中,您将创建两个具有名称的存储库:
mycompany/myproj/imageone
mycompany/myproj/imagetwo
然后,您可以使用此命名约定来编写基于身份的策略,例如,可以向 IAM 组myproj
授予对资源arn:aws:ecr:us-east-1:123456789012:repository/mycompany/myproj/*
。 除此之外,使用公共前缀并没有什么特别之处,ECR 将它们视为两个碰巧名称相似的存储库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.