当前位置: 首页 > 知识库问答 >
问题:

ECS 中的 Fargate 任务无法使用 ECR 接口终端节点从 ECR 存储库中提取映像

麻茂材
2023-03-14

我面临着从ECR存储库中提取docker映像并获取错误的问题-CannotPullContainerError:来自守护程序的错误响应

在我的VPC中,我有一个没有连接NAT网关的私有子网。因此,为了访问ECR,我创建了以下ECR接口endpoint和s3endpoint,并将私有子网与它们关联起来,

  1. com.amazonaws.region.ecr.api
  2. com.amazonaws.region.ecr.dkr
  3. com.amazonaws.region.s3

我还更新了存储库策略如下,

{
"Version": "2008-10-17",
"Statement": [
    {
        "Sid": "AllowPushPull",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::account-id:root"
        },
        "Action": [
            "ecr:GetDownloadUrlForLayer",
            "ecr:BatchGetImage",
            "ecr:BatchCheckLayerAvailability",
            "ecr:PutImage",
            "ecr:InitiateLayerUpload",
            "ecr:UploadLayerPart",
            "ecr:CompleteLayerUpload"
        ]
    }
]

}

我还更新了fargate任务安全组,以允许来自vpc范围的443端口。但是,我仍然面临着同样的问题,无法取得形象。你能帮忙吗?

共有2个答案

慕宪
2023-03-14

我认为如果您的 VPC 终端节点正确,您可能需要添加以下权限和上述权限。

" ecr:GetAuthorizationToken "

谢谢

阿希什·巴蒂亚

陆琦
2023-03-14

在更改 DHCP 选项以添加 AmazonProvideDNS 并添加 cloudwatch 日志终端节点后,该问题已得到解决。

可能会帮助某人!

 类似资料:
  • 我在管道上看到的错误:

  • 步骤1 为什么吊舱不能拉下图像?

  • 我在kubernetes(minikube)上有问题,从Docker上的本地图像库中提取图像。创建了Docker存储库:

  • 我所尝试的: 我可以成功推送到Amazon ECR(详细信息在我发布的这个答案中) 无法在后续管道中拉出上面的图像(请参见示例)。 bitbucket-pipeline.yml示例 最后: 为了推进到存储库,我已经为bitbucket-pipelines帐户(AmazonEC2ContainerRegistryPowerUser)设置了IAM角色。是否需要其他设置?

  • 基本上,我需要配置CI/CD与比特桶源代码到ECS容器。我想使用CodePipline部署新的ECR映像到ECS。 目前,AWS CodePipline中没有将bitbucket指定为源的选项。然而,我已经设法用webhooks配置了CodeBuild,这样它就可以构建docker文件,并在每次推送发布分支时将其推送到ECR。 我想将ECR配置为CodePipline中的“源”阶段,并将其部署到现

  • 我怀疑与ECS fargate内存使用有关。 我用fargate创建了一个任务定义(0.5vCpu 1GB RAM),并通过服务启动了它。 谁能给我解释一下吗?就像有任何Docker master或某些守护程序从任务定义中获取内存一样。

  • 我已经成功地与另一位现场开发人员一起使用GitLab,开发了C和MATLAB中的小型项目。 在家使用VPN工作时,我将一个大型LabVIEW程序推到了一个新项目中,这样我就可以与另一个非现场开发人员一起工作。开发人员克隆了该项目,并开始开发一个分支。 问题是我无法提取/获取此分支。GitLab正在显示开发人员所做的分支和提交。 我使用git的时间不长,所以我可能只是太傻了。 Git推送:“致命的‘