Comment puis-je résoudre l'erreur « CannotPullContainerError » dans ma tâche de type de lancement Amazon ECS EC2 ?
Date de la dernière mise à jour : 23/06/2022
Lorsque je lance une tâche EC2 dans Amazon Elastic Container Service (Amazon ECS), le message d'erreur suivant s'affiche : « CannotPullContainerError ». Comment résoudre ce problème ?
Brève description
L'erreur CannotPullContainerError se produit en raison de l'un des problèmes suivants :
- Une tâche de type de lancement Amazon Elastic Compute Cloud (Amazon EC2) ne peut pas extraire l'image en raison d'un réseau mal configuré
- Votre rôle AWS Identity et Access Management (IAM) n'a pas les autorisations nécessaires pour extraire ou envoyer des images.
- Une limite de taux DockerHub
Solution
La configuration réseau de votre instance de conteneur Amazon ECS est incorrecte
Si votre instance de conteneur Amazon ECS utilisée pour ECS Workload ne dispose pas d'une connexion Internet, elle ne peut pas atteindre le point de terminaison Container Registry pour extraire l'image.
Pour vérifier que votre instance de conteneur ECS dispose d'un accès Internet, consultez les points suivants :
- Assurez-vous que vos instances ont accès à Internet via une passerelle Internet ou une passerelle Network Address Translation (NAT) (traduction d’adresses réseau (NAT)).
Remarque : au lieu d’une passerelle NAT, vous pouvez utiliser AWS PrivateLink. Pour éviter les erreurs, assurez-vous qu'AWS PrivateLink est correctement configuré. - Vérifiez que l'accès HTTPS entrant est autorisé via le port 443 au niveau de l'instance, du groupe de sécurité et de la liste de contrôle d'accès au réseau (ACL réseau).
Pour résoudre les problèmes de connectivité de passerelle NAT, consultez la section Pourquoi mes instances EC2 ne peuvent-elles pas accéder à Internet à l'aide d'une passerelle NAT ?
Pour résoudre les problèmes de connectivité de passerelle Internet, consultez la section Pourquoi mon instance EC2 ne peut-elle pas se connecter à Internet à l'aide d'une passerelle Internet ? - Si vous utilisez un point de terminaison de VPC pour vous connecter à un point de terminaison Amazon Elastic Container Registry (Amazon ECR), vérifiez que les groupes de sécurité de votre point de terminaison de VPC autorisent l'instance de conteneur ECS à les utiliser.
- Si votre message d'erreur est le suivant : erreur CannotPullContainerError : API, procédez comme suit dans Comment puis-je résoudre l'erreur Amazon ECR « CannotPullContainerError : API error » dans Amazon ECS ?
Votre rôle IAM n'a pas les autorisations nécessaires pour extraire des images
Si vous exécutez une tâche à l'aide d'un type de lancement EC2, confirmez que le rôle IAM d'instance associé au profil d'instance dispose des autorisations pour accéder au référentiel Amazon ECR.
Remarque : la politique gérée par AWS AmazonEC2ContainerRegistryReadOnly fournit les autorisations minimales requises pour extraire des images.
La limite du taux de traction du DockerHub a été atteinte
Si vous essayez d'extraire une image depuis DockerHub et que vous avez atteint votre limite de taux d'extraction, le message d'erreur suivant s'affiche :
CannotPullContainerError: inspect image has been retried 5 time(s): httpReaderSeeker: failed open: unexpected status code https://registry-1.docker.io/v2/manifests/sha256:2bb501e6429 Too Many Requests - Server message: toomanyrequests: (Impossible d'extraire le conteneur : l'inspection de l'image a été relancée 5 fois : httpReaderSeeker : ouverture ratée : code de statut inattendu https://registry-1.docker.io/v2/manifests/sha256:2bb501e6429 Trop de demandes – Message du serveur : toomanyrequests : Vous avez atteint votre limite de taux d'extraction).
Cet article vous a-t-il été utile ?
Avez-vous besoin d'aide pour une question technique ou de facturation ?