在 ECS Fargate 上获取 CannotPullContainerError

Posted

技术标签:

【中文标题】在 ECS Fargate 上获取 CannotPullContainerError【英文标题】:Getting CannotPullContainerError on ECS Fargate 【发布时间】:2021-07-04 00:10:57 【问题描述】:

我正在尝试在 ECS Fargate 上运行我的微服务。我有自托管的私有 Docker 注册表。我尝试从 ECS Fargate 服务所在子网中的 EC2 服务器内部拉取相同的 Docker 映像,它能够拉取 Docker 映像。

但是,使用 ECS Fargate,我收到以下错误:

CannotPullContainerError:检查图像已重试 5 次: 未能解决参考 “xxxxxxxxxxxxxx/xxxxxxxxxxx:最新”: 请求失败:头部 https://xxxxxxxxxxxxxx/v2/xxxxxxxxxxxxxx/mani..

如果是网络错误,那么也应该无法从同一子网中的 EC2 服务器访问它。 Fargate 本身似乎有问题。

【问题讨论】:

如何保证fargate对ECR的访问? fargate 任务是公开的吗?是否有公共 IP,或者您正在使用 NAT 或 VPC 接口端点? 嗨@Marcin,图像不在 ECR 中。它位于我们的私有注册表中,该注册表也托管在同一 VPC 内的 EC2 上。 我也有同样的问题 【参考方案1】:

您想将图像推送到 aws ecr 中,因为 aws ecs fargate 将从 aws ecr 中提取图像。

【讨论】:

以上是关于在 ECS Fargate 上获取 CannotPullContainerError的主要内容,如果未能解决你的问题,请参考以下文章

AWS ECS Fargate 模式 - 自动扩展

如何诊断 ECS Fargate 任务启动失败?

AWS CDK 并在现有 ALB 上创建 ECS/Fargate 服务。使用现有的监听器?

AWS ECS Fargate - 任务未运行

AWS ECS Fargate ALB 错误(请求超时)

无法使用 awsvpc 网络类型与 ECS Fargate 上同一任务中的另一个容器通信