Comment puis-je résoudre l’erreur « CannotPullContainerError » dans ma tâche de type lancement Amazon EC2 ?
Lorsque je lance une tâche EC2 dans Amazon Elastic Container Service (Amazon ECS), je reçois le message d’erreur suivant : « CannotPullContainerError ».
Brève description
L’erreur CannotPullContainerError se produit en raison de l’un des problèmes suivants :
- Une tâche de type lancement Amazon Elastic Compute Cloud (Amazon EC2) ne peut pas extraire l’image en raison d’un réseau mal configuré.
- Votre rôle Gestion des identités et des accès AWS (AWS IAM) ne dispose pas des autorisations nécessaires pour extraire ou diffuser des images.
- DockerHub est soumis à une limite de débit.
- Le nom ou la balise de l’image n’existe pas.
Pour résoudre les erreurs liées aux tâches Amazon ECS qui ne démarrent pas, utilisez le runbook AWSSupport-TroubleshootECSTaskFailedToStart. Ensuite, suivez les étapes de dépannage correspondant à votre problème.
Résolution
Important :
- utilisez le runbook AWSSupport-TroubleshootECSTaskFailedToStart dans la même région AWS que celle où se trouvent les ressources de votre cluster ECS.
- Lorsque vous appliquez le runbook, vous devez utiliser le dernier ID de tâche ayant échoué. Si la tâche ayant échoué fait partie d’un service Amazon ECS, utilisez la dernière tâche ayant échoué dans le service. La tâche ayant échoué doit être visible dans ECS:DescribeTasks pendant l’automatisation. Par défaut, les tâches ECS arrêtées sont visibles pendant 1 heure après le passage à l’état Arrêté. L’utilisation du dernier identifiant de tâche ayant échoué permet d’éviter que le nettoyage de l’état de la tâche interrompe l’analyse pendant l’automatisation.
Pour savoir comment lancer le runbook, consultez la page AWSSupport-TroubleshootECSTaskFailedToStart. En fonction des résultats de l’automatisation, utilisez l’une des étapes de dépannage manuelles suivantes.
La configuration réseau de votre instance de conteneur Amazon ECS est incorrecte
Si votre instance de conteneur Amazon ECS ne dispose pas d’une connexion Internet, elle ne peut pas accéder au point de terminaison Amazon Elastic Container Registry (Amazon ECR). Sans connexion au point de terminaison, l’instance ne peut pas extraire l’image. Pour vérifier que votre instance de conteneur ECS a accès à Internet, passez en revue les points suivants :
- Vérifiez que vos instances ont accès à Internet via une passerelle Internet ou une passerelle de traduction d’adresses réseau (NAT).
Remarque : vous pouvez utiliser AWS PrivateLink à la place de la passerelle NAT. Pour éviter les erreurs, assurez-vous qu’AWS PrivateLink est configuré correctement. - 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 réseau (ACL réseau).
Pour résoudre les problèmes de connectivité de la passerelle NAT, consultez la page Pourquoi mon instance Amazon EC2 d’un sous-réseau privé ne peut-elle pas se connecter à Internet via une passerelle NAT ?
Pour résoudre les problèmes de connectivité de la passerelle Internet, consultez la page Pourquoi mon instance Amazon EC2 ne peut-elle pas se connecter à Internet via une passerelle Internet ? - Si vous utilisez un point de terminaison de VPC pour vous connecter à un point de terminaison Amazon ECR, vérifiez vos groupes de sécurité. Assurez-vous que les groupes de sécurité de votre point de terminaison de VPC autorisent l’instance de conteneur ECS à les utiliser.
- Si vous recevez le message d’erreur « ** CannotPullContainerError : Erreur d’API »**, consultez la page Comment puis-je résoudre l’erreur Amazon ECR « CannotPullContainerError : Erreur d’API » ?
Votre rôle IAM ne dispose pas des autorisations appropriées pour extraire des images
Vérifiez que le rôle IAM d’instance associé au profil d’instance est autorisé à 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 de taux d’extraction de DockerHub est 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 : 5 nouvelles tentatives ont été effectuées pour l’inspection de l’image : HttpReaderSeeker : échec de l’ouverture : code d’état inattendu https://registry-1.docker.io/v2/manifests/sha256:2bb501e6429 Trop grand nombre de demandes - Message du serveur : toomanyrequests : »
Pour résoudre ce problème, suivez la procédure décrite sur la page Comment résoudre l’erreur Amazon ECS « CannotPullContainerError : Vous avez atteint votre limite de taux d’extraction » dans Amazon ECS ?
Le nom ou la balise de l’image n’existe pas
Si une image ou la balise associée hébergée dans Amazon ECR qui est spécifiée dans votre définition de tâche n’existe pas, vous recevez l’erreur suivante :
« Cannotpullcontainererror : 1 nouvelle tentative a été effectuée pour l’extraction du manifeste d’image : échec de la résolution réf 123456789.dkr.ecr.ap-southeast-2.amazonaws.com/image-name:tag: 123456789**.dkr.ecr.ap-southeast-2.amazonaws.com/image-name:tag: introuvable** »
Pour résoudre ce problème, vérifiez le champ d’image dans votre définition de tâche. Vérifiez que le référentiel correspondant et la balise définie sont présents dans le registre de conteneurs à partir duquel vous effectuez l’extraction.
Si votre tâche extrait une image d’un registre autre qu’Amazon ECR et qu’il manque des informations, une autre erreur s’affiche. L’erreur suivante se produit si l’image ou la balise n’existe pas, ou si les informations d’identification du registre ne sont pas fournies :
« Cannotpullcontainererror : une nouvelle tentative a été effectuée pour l’extraction du manifeste d’image : échec de résolution réf docker.io/library/invalid-name:non-existenttag : accès refusé pour l’extraction, le référentiel n’existe pas ou peut nécessiter une autorisation : message serveur : insufficient_scope : échec de l’autorisation »
Pour résoudre ce problème, vérifiez le champ d’image dans votre définition de tâche. Assurez-vous que l’image existe dans le registre de conteneurs correspondant. Si l’image existe, veillez à fournir les informations d’identification correctes. Pour en savoir plus, consultez la page Authentification du registre privé pour les tâches.
Contenus pertinents
- demandé il y a 2 anslg...
- demandé il y a 4 moislg...
- demandé il y a 2 moislg...
- demandé il y a 2 anslg...
- demandé il y a 18 jourslg...
- AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a 3 ans
- AWS OFFICIELA mis à jour il y a un an