0.AWS ECR使用

AWS ECR使用

参考官方文档:https://docs.amazonaws.cn/AmazonECR/latest/userguide/what-is-ecr.html

AWS CLI:https://docs.aws.amazon.com/zh_cn/cli/latest/index.html

AWS ECR CLI:https://docs.aws.amazon.com/zh_cn/cli/latest/reference/ecr/index.html

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

1.Amazon ECR 组件:

注册表
我们为每个 Amazon 账户均提供了一个 Amazon ECR 私有注册表;您可以在注册表中创建一个或以上存储库,并在其中存储镜像。

Amazon ECR 私有注册表通过高度可用且可扩展的架构托管容器镜像

私有注册表概念

  • 您的原定设置私有注册表的 URL 为 https://``aws_account_id.dkr.ecr.region.amazonaws.com
  • 预设情况下,您的账户可以读取和写入私有注册表中的存储库。但是IAM 用户需拥有调用 Amazon ECR API权限才能从私有存储库中推送或提取镜像。Amazon ECR 提供了多个托管策略来控制不同级别的用户访问。
  • 您必须为 Docker 客户端授予注册表权限,以便使用 docker pushdocker pull 命令对该私有注册表中的存储库执行推送和提取镜像操作。
  • 通过 IAM 用户访问策略及存储库策略对私有存储库加以控制
  • 通过配置私有注册表的复制,私有注册表中的存储库可以在自己的私有注册表中的区域之间进行复制,也可以跨单独的账户进行复制。

授权令牌
Docker 客户端必须作为 Amazon 用户向 Amazon ECR 注册表进行身份验证,然后才能推送和提取映像。

存储库
Amazon ECR 存储库包含您的 Docker 镜像、Open Container Initiative (OCI) 镜像和 OCI 兼容构件。

存储库策略
您可以通过存储库策略来控制对存储库及其中的映像的访问。

映像
可以对存储库推送和提取容器映像。这些映像可以在开发系统中本地使用,也可以在 Amazon ECS 任务定义Amazon EKS Pod 规范中使用

2.Amazon ECR 的功能

生命周期策略有助于管理存储库中映像的生命周期。您可以定义导致清理未使用映像的规则。您

映像扫描有助于识别容器映像中的软件漏洞`。每个存储库都可以配置为在推送时扫描。

跨区域和跨账户复制使您可以更轻松地将映像放置在需要的位置。它配置为注册表设置,并基于每个区域。

缓存提取规则提供了在私有 Amazon ECR 注册表中缓存远程公有注册表中的存储库的方法。使用缓存提取规则时,Amazon ECR 将定期访问远程注册表,以确保 Amazon ECR 私有注册表中缓存的镜像为最新状态。

3.使用AWS ECR

3.1配置IAM

​ Amazon 中的服务 (例如 Amazon ECR) 要求在访问时提供凭证,以便服务可以确定是否有权限访问其资源可以为您的 Amazon 账户创建访问密钥以访问命令行界面或 API。不建议使用 Amazon 账户的凭证访问 Amazon,而建议改用 Amazon Identity and Access Management (IAM)。创建 IAM 用户,然后将该用户添加到具有管理权限的 IAM 组`或授予此用户管理权限。然后,就可以使用专门的 URL 和该 IAM 用户的凭证来访问 Amazon。

如果您已注册 Amazon 但尚未为自己创建一个 IAM 用户,则可以使用 IAM 控制台自行创建。

自行创建管理员用户并将该用户添加到管理员组 (控制台)

  1. 选择 Root user(根用户)并输入您的 Amazon Web Services 账户 电子邮件地址,以账户拥有者身份登录 IAM控制台

2.在导航窗格中,选择 Users(用户),然后选择 Add users(添加用户)。

3.对于 User name(用户名),输入 Administrator

4.选中 Amazon Web Services Management Console access (Amazon Web Services Management Console 管理控制台访问)旁边的复选框。然后选择自定义密码,并在文本框中输入新密码。

5.(可选)默认情况下,Amazon要求新用户在首次登录时创建新密码。可以清除 User must create a new password at next sign-in(用户必须在下次登录时创建新密码)旁边的复选框以允许新用户在登录后重置其密码。

6.选择下一步: 权限

7.在设置权限下,选择将用户添加到组

8.选择创建组

9.在 Create group(创建组)对话框中,对于 Group name(组名称),输入 Administrators

10.选择 Filter policies(筛选策略),然后选择 Amazon managed - job function(Amazon 托管 – 工作职能)以筛选表内容。

11.在策略列表中,选中 AdministratorAccess 的复选框。然后选择 Create group(创建组)。

  1. 注意

    必须先激活 IAM 用户和角色对账单的访问权限,然后才能使用 AdministratorAccess 权限访问 Amazon Billing and Cost Management 控制台。

  2. 返回到组列表中,选中您的新组所对应的复选框。如有必要,选择 Refresh(刷新)以在列表中查看该组。

  3. 选择下一步: 标签

  4. (可选) 通过以键值对的形式附加标签来向用户添加元数据。

  5. 选择 Next: Review(下一步:审核)以查看要添加到新用户的组成员资格的列表。如果您已准备好继续,请选择 Create user(创建用户)。

可使用这一相同的流程创建更多组和用户,并允许您的用户访问 Amazon Web Services 账户 资源。

要以该新 IAM 用户的身份登录,请从 Amazon 控制台注销,然后使用以下 URL,其中 your_aws_account_id 是您的 Amazon 账号,不带连字符 (例如,如果您的 Amazon 账号是 1234-5678-9012,则您的 Amazon 账户 ID 是 123456789012):

https://your_aws_account_id.signin.aws.amazon.com/console/

输入您刚创建的 IAM 用户名和密码。登录后,导航栏显示“your_user_name @ your_aws_account_id”。

如果您不希望您的登录页面 URL 包含 Amazon 账户 ID,可以创建账户别名。从 IAM 控制面板,选择自定义,然后输入账户别名

要在创建账户别名后登录,请使用以下 URL:

https://your_account_alias.signin.aws.amazon.com/console/

要为您的账户验证 IAM 用户的登录链接,请打开 IAM 控制台并在控制面板的 IAM 用户登录链接下进行检查。

3.2 安装 Amazon CLI
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
3.3 安装 Docker
sudo yum update -y
sudo amazon-linux-extras install docker
sudo service docker start
sudo usermod -a -G docker ec2-user

3.4向注册表注册身份
aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
3.5创建映像存储库

存储库是存储 Amazon ECR 中 Docker 或 Open Container Initiative (OCI) 映像的地方,

1.打开位于 Amazon ECR 控制台。

2.选择开始使用

3.对于 Visibility settings(可见性设置),请选择 Private(私密)。

4.对于 Repository name(存储库名称),请指定存储库的名称。

5.对于标签不变性,选择存储库的标签可变性设置。配置有不可变标签的存储库会阻止覆盖映像标签。

6.对于推送扫描,选择存储库的映像扫描设置。配置为在推送时进行扫描的存储库将在每次推送映像时启动映像扫描,否则需要手动启动映像扫描。

CLI创建

#aws ecr create-repository \
    --repository-name hello-world \
    --image-scanning-configuration scanOnPush=true \
    --region region
3.6推送镜像到ECR
#docker tag hello-world:latest aws_account_id.dkr.ecr.region.amazonaws.com/hello-world:latest
#docker push aws_account_id.dkr.ecr.region.amazonaws.com/hello-world:latest
3.7Amazon ECR 提取镜像

在推送镜像到 Amazon ECR 存储库后,可以从其他位置提取该镜像。可使用 docker CLI 提取镜像,但必须满足以下几个先决条件才能正常使用:

  • 安装最低版本的 docker:1.7
  • 已使用 docker login 配置 Amazon ECR 授权令牌。
  • Amazon ECR 存储库存在且用户有从该存储库提取的权限。

在满足这些先决条件后,即可提取镜像。要从 Amazon ECR 提取示例镜像,请运行以下命令:

docker pull aws_account_id.dkr.ecr.region.amazonaws.com/hello-world:latest
3.8删除镜像

使用 batch-delete-image 命令将其删除。要删除镜像,必须指定它所在的存储库,并指定镜像的 imageTagimageDigest 值。以下示例删除 hello-world 存储库中镜像标签为 latest 的镜像

aws ecr batch-delete-image \
      --repository-name hello-world \
      --image-ids imageTag=latest \
      --region region
3.9删除存储库

默认情况下,您不能删除包含镜像的存储库;--force 标记允许此操作。

aws ecr delete-repository \
      --repository-name hello-world \
      --force \
      --region region
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fine_qq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值