当我的任务无法在 Amazon ECS 集群中启动时,如何解决“Image does not exist”(映像不存在)错误?

2 分钟阅读
0

我的 Amazon Elastic Container Service (Amazon ECS) 服务无法在我的集群中启动任务,我收到以下错误: “CannotPullContainerError: Error response from daemon: manifest for 1234567890.dkr.ecr.us-east-1.amazonaws.com/test:curlnginx1234 not found.”(CannotPullContainerError:来自进程守护程序的错误响应:未找到 1234567890.dkr.ecr.us-east-1.amazonaws.com/test:curlnginx1234 的清单。)

简短描述

当从 Amazon Elastic Container Registry (Amazon ECR) 私有存储库拉取映像时,您会收到此错误。

如果您没有收到此错误消息,请为您的问题或错误消息选择以下解决方法之一:

**注意:**要对 Amazon ECS 服务问题进行故障排除,请在服务事件日志中查看诊断信息。

解决方法

**注意:**如果在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

要解决 Image does not exist(映像不存在)错误,请完成以下步骤:

  1. 验证映像是否已在您的 Amazon ECS 任务定义中声明。有关详细信息,请参阅映像
  2. 验证 Docker 映像是否存在于 Amazon ECR 存储库中。有关详细信息,请参阅在 Amazon ECR 中查看映像详细信息。要查看存储库信息,请使用 Amazon ECR 控制台。或者运行以下命令。
    要确认映像是否存在于 ECR 存储库中,请运行 list-images 命令:
    aws ecr list-images --repository-name "hello-world"  --region us-east-1
    要筛选 ECR 存储库中的映像,请运行 describe-images 命令:
    aws ecr describe-images --repository-name "hello-world" --region us-east-1 --query 'sort_by(imageDetails,& imagePushedAt)[*]'
    **注意:**请将 repository-nameregion 替换为您的值。
  3. 在任务定义中指定 Amazon ECR 映像。使用映像的完整 URI。有关详细信息,请参阅 Amazon ECR 映像和任务定义 IAM 角色
    **重要事项:**验证映像的 URI 中是否没有前导或尾随的字符空格。

相关信息

Amazon ECR 中的私有映像

AWS 官方
AWS 官方已更新 1 年前