AWS-Elastic Container Registry ECR使用

简介

Amazon Elastic Container Registry (Amazon ECR) 是AWS托管容器映像注册表服务,它安全、可扩展且可靠。Amazon ECR 支持具有基于资源的权限的私有容器映像存储库,使用AWSIAM。这样,指定用户或 Amazon EC2 实例可以访问容器存储库和映像。用户可以使用首选 CLI 推送、拉取和管理 Docker 映像、Open Container Ititistry (OCI) 映像和 OCI 兼容构件。
在这里插入图片描述

Amazon ECR 的组件注册表

  • 注册表
    亚马逊 ECR 注册表提供给每个AWS帐户;可以在注册表中创建映像存储库,并在其中存储映像。
  • 授权令牌
    客户必须向 Amazon ECR 注册表进行身份验证,作为AWS用户才能推送和拉取私有映像。
  • 存储库
    Amazon ECR 映像存储库包含 Docker 映像、Open Container Ititistry (OCI) 映像和 OCI 兼容构件。
  • 存储库策略
    可以通过存储库策略来控制对存储库及其中的映像的访问。
  • 映像
    可以对存储库推送和拉取容器映像。这些映像可以在开发系统中本地使用,也可以在 Amazon ECS 任务定义和 Amazon EKS Pod 规范中使用

Amazon ECR 的功能

Amazon ECR 提供以下功能:

  • 生命周期策略有助于管理存储库中映像的生命周期。可以定义导致清理未使用的图像的规则;也可以在将规则应用到存储库之前对其进行测试。
  • 映像扫描有助于识别容器映像中的软件漏洞。每个存储库都可以配置为推送时扫描。这可确保扫描推送到存储库的每个新映像,用户可以检索图像扫描的结果。
  • 跨区域和跨账户复制,使用户可以更轻松地将映像放置在需要的位置。这配置为注册表基于每个区域设置。

Amazon ECR 的定价

由于我使用的是全球账户,Region在新加坡,参考以下定价

AWS 免费套餐 *

作为 AWS 免费套餐的一部分,Amazon ECR 新客户可以获得每月 500 MB 的私有存储库存储空间 ,为期一年。
作为新客户或现有客户,Amazon ECR 为您的公有存储库提供每月 50 GB 的长期免费存储空间。您每月可以免费从公有存储库向 Internet 匿名传输 500 GB 的数据(不使用 AWS 账户)。 如果您注册了 AWS 账户,或使用现有 AWS 账户进行了 ECR 认证,则您每月可以从公有存储库向 Internet 免费传输 5 TB 的数据,并且当您将数据从公有存储库传输到任何 AWS 区域的 AWS 计算资源时,您可以免费获得无限制的带宽。
免费使用量每个月计算一次,包含所有地区并自动计入到账单中,免费使用量不能累积。

超出免费套餐限制的部分定价详细信息
  • 存储:
    对于存储在私有或公有存储库上的数据,存储的定价是每月每 GB 0.10 USD 。
  • 对于从私有存储库传输的数据
    在这里插入图片描述
  • 对于从公有存储库传输的数据
    在这里插入图片描述

使用

在控制台上操作

  1. 创建存储库
    在这里插入图片描述
    点击入门

  2. 创建的时候可以选择公有或私有的存储库
    在这里插入图片描述
    在这里插入图片描述
    这一步可以直接上传文件,也可以通过docker push上传。

  3. 建一个私有存储库
    在这里插入图片描述

  4. 点击进去后,可以查看推送目录

使用 AWS CLI:

aws ecr get-login-password --region ap-southeast-1 | docker login --username AWS --password-stdin 0982420002.dkr.ecr.ap-southeast-1.amazonaws.com

使用以下命令生成 Docker 映像。如果已生成映像,则可跳过此步骤:

docker build -t network-multitool .

标记映像

docker tag network-multitool:latest 0982420002.dkr.ecr.ap-southeast-1.amazonaws.com/network-multitool:latest

推送映像

docker push 098246620002.dkr.ecr.ap-southeast-1.amazonaws.com/network-multitool:latest

客户端上传(CentOS7)

每个AWS账户提供默认私有 Amazon ECR 注册表,需要安装AWS Cli和Docker。
必须为 Docker 客户端授予镜像仓库权限,以便使用docker push和docker pull命令可以从该镜像仓库中的存储库中推送和拉取镜像。具体请参阅 私有注册表验证

  1. 检查基本设置

[root@aws-client ~]# aws configure
AWS Access Key ID [****************MK75]:
AWS Secret Access Key [****************0ETZ]:
Default region name [ap-southeast-1]:
Default output format [json]:

  1. 从dockers.io下载image

[root@aws-client ~]# docker pull praqma/network-multitool
Using default tag: latest
latest: Pulling from praqma/network-multitool
540db60ca938: Pull complete
79a6663b731b: Pull complete
922bc16268b4: Pull complete
478ea98fd9bb: Pull complete
1451980ffb9e: Pull complete
Digest: sha256:7222852f7f120b44268f5bb8e2631bc667d740bd62dfc9eb695e89babd3e6d71
Status: Downloaded newer image for praqma/network-multitool:latest
docker.io/praqma/network-multitool:latest
[root@aws-client ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
praqma/network-multitool latest 293c239dd855 3 months ago 38.1MB

  1. 身份验证

[root@aws-client ~]# aws ecr get-login-password --region ap-southeast-1 | docker login --username AWS --password-stdin 0982420002.dkr.ecr.ap-southeast-1.amazonaws.com
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded

  1. 为Image打tag

[root@aws-client ~]# docker tag praqma/network-multitool:latest 0982420002.dkr.ecr.ap-southeast-1.amazonaws.com/network-multitool:latest
[root@aws-client ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
098246620002.dkr.ecr.ap-southeast-1.amazonaws.com/network-multitool latest 293c239dd855 3 months ago 38.1MB
praqma/network-multitool latest 293c239dd855 3 months ago 38.1MB

  1. 上传Image

[root@aws-client ~]# **docker push 0982420002.dkr.ecr.ap-southeast-1.amazonaws.com/network-multitool:latest **
The push refers to repository [098246620002.dkr.ecr.ap-southeast-1.amazonaws.com/network-multitool]
1d7bbe9a9a95: Pushed
a3f5f0fbb011: Pushed
d1cedc16831d: Pushed
6f594e0f85a0: Pushed
b2d5eeeaba3a: Pushed
latest: digest: sha256:1a546071c99290fa1d02f8ded26070e1e5711efeb02b3208752b92834f058948 size: 1361

  1. 在控制台检查
    在这里插入图片描述

客户端下载

  1. 复制URL
    在这里插入图片描述

  2. 在客户端pull

[root@aws-client ~]# docker pull 098246620002.dkr.ecr.ap-southeast-1.amazonaws.com/network-multitool:latest
latest: Pulling from network-multitool
540db60ca938: Pull complete
79a6663b731b: Pull complete
922bc16268b4: Pull complete
478ea98fd9bb: Pull complete
1451980ffb9e: Pull complete
Digest: sha256:1a546071c99290fa1d02f8ded26070e1e5711efeb02b3208752b92834f058948
Status: Downloaded newer image for 098246620002.dkr.ecr.ap-southeast-1.amazonaws.com/network-multitool:latest
098246620002.dkr.ecr.ap-southeast-1.amazonaws.com/network-multitool:latest

成功

公有存储库上传的流程一样,下载不用做身份验证。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值