如何解决 Amazon ECS 任务在容器退出时停止或无法开始的问题?

1 分钟阅读
0

我的 Amazon Elastic Container Service(Amazon ECS)容器意外退出,任务停止或无法开始。

简短描述

您的容器可能会由于映像问题、应用程序问题、资源限制或其他问题而退出。

有关因映像问题导致的任务失败,请参阅如何解决在 Amazon ECS 集群启动任务失败时的“Image does not exist”错误?对于意外停止的 AWS Fargate 任务,对于所有可能的错误消息,请参阅 Amazon ECS 已停止任务错误消息

解决方法

要确定任务停止的原因,请完成以下任务:

  • 检查服务事件日志中的诊断信息。
  • 检查停止的任务是否存在错误
    **注意:**您可以在 list-tasks 命令的返回结果中,查看已停止一小时以上的任务。
  • 如果您已经配置了日志驱动程序,在应用程序日志中检查是否存在应用程序问题。例如,如果在任务定义中配置了 awslogs 日志驱动程序,则在 Amazon CloudWatch 中查看 awslogs 容器日志。或者,使用任务定义中的日志配置选项将日志发送到容器支持的日志驱动程序。根据任务的启动类型,记下日志中的以下信息:
    **对于 Fargate 以外的 ECS 任务:**如果您将默认 json 文件日志记录驱动程序与 Amazon Elastic Compute Cloud(Amazon EC2)启动类型一起使用,则运行 docker logs <yourContainerID> 命令。此命令将检查您的 ECS 容器实例上的容器的 Docker 日志。有关 JSON 文件日志记录驱动程序的更多信息,请参阅 Docker 网站上的 JSON File logging driver
    **对于 Fargate 任务:**默认情况下,捕获的日志会显示命令输出,内容与您在本地运行容器时可能会在交互式终端中看到的类似。这些命令输出是 STDOUT 和 STDERR I/O 流。awslogs 日志驱动程序会将这些日志从 Docker 传递到 Amazon CloudWatch Logs。
  • 要解决内存限制问题,请按照如何在 Amazon ECS 中为任务分配内存?中的说明操作。
AWS 官方
AWS 官方已更新 6 个月前