繁体   English   中英

无法从 ECS 集群中运行的容器实例上的 amazon ECS 私有存储库中提取映像

[英]Unable to pull image from amazon ECS private repository on container instances running in ECS cluster

我在 AWS ECS 上创建了一个非默认集群,我能够从 docker 公共存储库中提取 docker 图像并运行它进行测试。

然后我创建了一个 ECS 私有存储库,并构建并推送了一个镜像到这个存储库,它成功了。 但是当我尝试使用 docker pull 手动拉它时,它抱怨以下错误:

来自守护进程的错误响应:获取https://532193077341.dkr.ecr.ap-south-1.amazonaws.com/v2/12r/manifests/latest :没有基本的身份验证凭据

这似乎是 IAM 角色和权限的问题,但我不确定要更改哪个角色/策略。

在您的 ECS 容器(任务)定义中

如果您使用的是私有 ECR 存储库:

检查私人仓库身份验证选项,如ECR不使用的用户名,密码认证,它将使用IAM角色/用户权限。 然后,只需确保 ECS IAM 角色(默认称为ecsTaskExecutionRole )有权从 ECR 中提取图像,如果它不自己添加这些行:

"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage",

如果您使用的是非 ECR 私有存储库:

检查私有存储库身份验证选项并使用Secrets Manager提供您的用户名密码

您需要先针对 ECR 进行身份验证。 仅凭本地 AWS 凭证不足以让您从私有 ECR 存储库中提取。 事先尝试这样的事情:

$(aws ecr get-login --registry-ids <YOUR-ID> --region <YOUR-REGION>)

这将针对 ECR 为您执行docker login ,允许您提取私有映像(假设您的本地 AWS 凭证具有所需的权限)。

有关更多信息,请参阅Amazon ECR 文档中的“步骤 1:向您的默认注册表验证 Docker”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM