ECR是一个私有的docker镜像存储库。
ECR的组件:注册表、授权令牌、存储库、存储库策略、映像。
注册表:每个AWS 账户均提供ECR的注册表,可以在注册表中创建映像的存储库,并在起中存储映像。
授权令牌:docker客户端向ECR注册表推送和拉取映像,进行身份验证的令牌。
存储库:存储docker映像的。
存储库策略:通过存储库策略来控制对存储库映像的访问。
映像:制作容器的镜像
如何将镜像推送到ECR仓库:
1.首先创建一个ECR镜像存储库;
aws ecr create-repository --repository-name 存储库名称
2.对镜像打tag;
docker tag 镜像名称 aws_account_id.dkr.ecr.us-east-1.amazonaws.com/存储库名称
3.获取注册表的身份验证字符串;(此命令提供的授权令牌在12小时有效)
aws ecr get-login --no-include-email
4.推送镜像到ECR;
docker push
aws_account_id
.dkr.ecr.us-east-1
.amazonaws.com/存储库
5.删除存储库;
aws ecr delete-repository --repository-name 存储库名称 --force
在AWS 控制台上显示的是压缩后的镜像的大小,而使用docker images 看到的镜像是未压缩的。
在控制台中ecr存储库的页面上可以看到映像的信息:
image:有关在存储库中映像的信息;
permissions: 存储库的权限策略;
Lifecycle Polic(生命周期策略):存储库的生命周期策略规则;
tags:存储库的元数据标签。
AWS CLI tag的操作:
标记现有存储库:
aws ecr tag-resource --resource-arn arn:aws:ecr:region:account_id:repository:repository_name --tags Key=stack,Value=dev
取消标记:
aws ecr untag-resource --resource-arn arn:aws:ecr:region:account_id:repository:repository_name --tag-keys tag_key
列出存储库的标签:
aws ecr list-tags-for-resource --resource-arn arn:aws:ecr:region:account_id:repository:repository_name
创建存储库并且应用标签:
aws ecr create-repository --repository-name test-repo --tags Key=team,Value=devs