Comment résoudre l'erreur « Image does not exist » (l'image n'existe pas) lorsque le lancement de mes tâches échoue dans le cluster Amazon ECS ?
Dernière mise à jour : 13/07/2022
Le service Amazon Elastic Container Service (Amazon ECS) ne parvient pas à démarrer des tâches dans le cluster Amazon ECS. Je reçois alors un message d'erreur similaire à ce qui suit : « CannotPullContainerError: Error response from daemon: manifest for 1234567890.dkr.ecr.us-east-1.amazonaws.com/test:curlnginx1234 not found. » (CannotPullContainerError : Erreur de réponse de démon : manifeste pour 1234567890.dkr.ecr.us-east-1.amazonaws.com/test:curlnginx1234 introuvable). Comme puis-je résoudre cette erreur ?
Brève description
La solution proposée ici à cette erreur s'applique à l'extraction d'images à partir d'un référentiel Amazon Elastic Container Registry (Amazon ECR).
Si vous n'avez pas reçu le message d'erreur précédent, optez pour une autre solution en fonction de l'erreur ou du problème qui vous concerne dans la liste suivante :
- Votre conteneur abandonne en raison de problèmes d'application ou de contraintes de ressources.
- Les vérifications de l'état pour votre équilibreur de charge d'application échouent.
- Docker ne peut pas extraire l'image de conteneur.
- [AWS service] ne parvient pas à attribuer une tâche, car aucune instance de container ne répond à toutes ses exigences.
- [AWS service] was unable to place a task because no container instance met all of its requirements. L'instance de conteneur container-instance container-instance-id la plus proche n'a pas assez d'unités CPU disponibles.
- [AWS service] was unable to place a task because no container instance met all of its requirements. Le container-instance-id de container-instance qui correspond le plus rencontre l'erreur « AGENT ».
Remarque : pour dépanner les problèmes Amazon ECS service, consultez les informations de diagnostic dans le journal des événements de service.
Résolution
1. Vérifiez que l'image est déclarée dans votre définition de tâche Amazon ECS.
2. Vérifiez que l'image Docker existe dans le référentiel Amazon ECR.
Remarque : pour afficher les informations relatives au référentiel, vous pouvez utiliser la console Amazon ECR ou exécuter les commandes suivantes :
Pour vérifier si une image existe dans un référentiel ECR, exécutez la commande list-images suivante :
aws ecr list-images --repository-name "hello-world" --region us-east-1
Pour filtrer les images dans un référentiel ECR, exécutez la commande describe-images suivante :
aws ecr describe-images --repository-name "hello-world" --region us-east-1 --query 'sort_by(imageDetails,& imagePushedAt)[*]'
Remarque : n'oubliez pas de mettre à jour vos commandes avec le nom de votre référentiel ECR et la région AWS.
3. Utilisez l'URI complet de l'image lorsque vous spécifiez une image Amazon ECR dans votre définition de tâche.
Important : vérifiez qu'il n'y a pas d'espace superflu ajouté au début ou à la fin de l'URI spécifié pour l'image.
Cet article vous a-t-il été utile ?
Besoin d'aide pour une question technique ou de facturation ?