Mein Amazon Elastic Container Service (Amazon ECS) Container wird unerwartet beendet und Aufgaben werden angehalten oder können nicht gestartet werden.
Kurzbeschreibung
Ihre Container können aufgrund von Image-Problemen, Anwendungsproblemen, Ressourcenbeschränkungen oder anderen Problemen beendet werden.
Zu Aufgabenfehlern wegen Image-Problemen finden Sie Informationen unter How do I resolve the "Image does not exist" error when my tasks fail to start in my Amazon ECS cluster? Für AWS-Fargate-Aufgaben, die unerwartet beendet werden, finden Sie alle möglichen Fehlermeldungen unter Amazon-ECS-Fehlercodes für den Fargate-Starttyp.
Behebung
Um herauszufinden, warum Ihre Aufgaben beendet wurden, führen Sie die folgenden Aufgaben aus:
- Suchen Sie im Serviceereignisprotokoll nach Diagnoseinformationen.
- Überprüfen Sie die angehaltenen Aufgaben auf Fehler.
**Hinweis:**Sie können den Befehl list-tasks verwenden, um gestoppte Aufgaben in den zurückgegebenen Ergebnissen für mindestens eine Stunde anzuzeigen.
- Wenn Sie bereits einen Protokolltreiber konfiguriert haben, überprüfen Sie Ihre Anwendungsprotokolle auf Anwendungsprobleme. Wenn beispielsweise der awslogs-Protokolltreiber in Ihrer Aufgabendefinition konfiguriert ist, sehen Sie sich die Awslogs-Container-Protokolle in Amazon CloudWatch an. Verwenden Sie andernfalls die Protokollkonfigurationsoptionen in Ihrer Aufgabendefinition, um Protokolle an einen benutzerdefinierten Protokolltreiber für den Container zu senden. Beachten Sie je nach Starttyp Ihrer Aufgabe die folgenden Informationen in den Protokollen:
Für andere ECS-Aufgaben als Fargate: Wenn Sie den standardmäßigen JSON-Dateiprotokollierungstreiber mit dem Starttyp Amazon Elastic Compute Cloud (Amazon EC2) verwenden, führen Sie den Docker-Logs** <yourContainerID>**Befehl aus.Dieser Befehl überprüft die Docker-Protokolle des Containers auf Ihrer ECS Container Instance. Weitere Informationen zum JSON-Dateiprotokollierungstreiber finden Sie unter JSON-Dateiprotokollierungstreiber auf der Docker Website.
Für Fargate-Aufgaben: Standardmäßig zeigen die erfassten Protokolle die Befehlsausgabe, die Sie möglicherweise in einem interaktiven Terminal sehen, wenn Sie den Container lokal ausgeführt haben. Diese Befehlsausgaben sind die STDOUT- und STDERR-I/O-Streams. Der awslogs-Protokolltreiber leitet diese Protokolle von Docker an Amazon CloudWatch Logs weiter.
- Um Probleme mit Speicherbeschränkungen zu beheben, folgen Sie den Anweisungen unter Wie kann ich Aufgaben in Amazon ECS Speicher zuweisen?