Share Your AWS re:Post Experience - Quick 3 Question Survey and Earn a re:Post Badge
Help us improve AWS re:Post! We're interested in understanding how you use re:Post and its impact on your AWS journey. Please take a moment to complete our brief 3-question survey
Comment puis-je résoudre les erreurs « CannotPullContainerError » lorsque je lance une tâche EC2 dans Amazon ECS ?
Lorsque je lance une tâche Amazon Elastic Compute Cloud (Amazon EC2) dans Amazon Elastic Container Service (Amazon ECS), le message d'erreur « CannotPullContainerError » s'affiche.
Brève description
L'erreur CannotPullContainerError se produit pour les raisons suivantes :
- Une tâche de type lancement Amazon EC2 ne peut pas extraire l'image car vous avez incorrectement configuré le réseau.
- Votre rôle Gestion des identités et des accès AWS (AWS IAM) ne dispose pas des autorisations nécessaires pour extraire l’image.
- Vous avez atteint votre quota de taux DockerHub.
- Le nom ou l’identification de l’image n’existe pas.
- La définition de tâche fait référence à une image qui se trouve dans un autre compte AWS.
Résolution
Utiliser le dossier d’exploitation AWSSupport-TroubleshootECSTaskFailedToStart pour résoudre les problèmes
Utilisez le dossier d'exploitation AWSSupport-TroubleshootECSTaskFailedToStart pour résoudre les échecs de démarrage des tâches Amazon ECS. Lorsque vous exécutez le dossier d’exploitation, vous devez utiliser également le dernier ID de tâche qui a échoué. Si la tâche ayant échoué fait partie du 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 Amazon ECS sont visibles pendant 1 heure après leur passage à l'état Arrêté.
Pour lancer le dossier d’exploitation, consultez la section AWSSupport-TroubleshootECSTaskFailedToStart. En fonction du résultat de l'automatisation, utilisez l'une des résolutions suivantes.
Important : Utilisez le dossier d’exploitation AWSSupport-TroubleshootECSTaskFailedToStart dans la même région AWS où sont situées les ressources de votre cluster Amazon ECS.
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 Amazon ECS dispose d'un accès à Internet, effectuez les actions suivantes :
- Vérifiez que vos instances ont accès à Internet via une passerelle Internet ou une passerelle NAT. Pour résoudre les problèmes de connectivité de la passerelle NAT, consultez la section Pourquoi mon instance Amazon EC2 d’un sous-réseau privé ne peut-elle pas se connecter à Internet via une passerelle NAT ?
Remarque : Vous pouvez utiliser AWS PrivateLink à la place d’une passerelle NAT. Pour éviter les erreurs, assurez-vous de configurer correctement AWS PrivateLink. - 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 Internet, consultez la section Pourquoi mon instance Amazon EC2 ne peut-elle pas accéder à Internet via une passerelle Internet ?
- Si vous utilisez un point de terminaison de cloud privé virtuel (VPC) pour vous connecter à un point de terminaison Amazon ECR, vérifiez les groupes de sécurité de votre instance de conteneur Amazon ECS. Autorisez votre instance de conteneur Amazon ECS à envoyer du trafic à des groupes de sécurité pour votre point de terminaison de VPC.
- Si vous recevez le message d’erreur CannotPullContainerError: API error, puis consultez la section Comment puis-je résoudre les tâches Amazon ECS qui ne parviennent pas à extraire des images depuis Amazon ECR ?
Votre rôle IAM ne dispose pas d’autorisations 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 quota 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: »
Pour résoudre ce problème, consultez la section Comment puis-je résoudre l'erreur « CannotPullContainerError : You have reached your pull rate limit » dans Amazon ECS ?
Le nom ou l’identification de l’image n’existe pas
Si vous définissez une image ou une identification hébergée dans Amazon ECR mais que l'image ou l’identification n'existe pas, le message d'erreur suivant s'affiche :
« Cannotpullcontainererror: pull image manifest has been retried 1 time(s): failed to resolve ref 123456789.dkr.ecr.ap-southeast-2.amazonaws.com/image-name:tag: 123456789**.dkr.ecr.ap-southeast-2.amazonaws.com/image-name:tag: not found*\ »
Pour résoudre ce problème, vérifiez que la valeur du champ image est correcte dans votre définition de tâche. Vérifiez que le référentiel et l’identification correspondants existent 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 que des informations sont manquantes dans votre tâche, une erreur différente s’affiche. L’erreur suivante se produit si l’image ou l’identification n’existe pas, ou si les informations d’identification du registre ne sont pas fournies :
« Cannotpullcontainererror: pull image manifest has been retried 1 time(s): failed to resolve ref docker.io/library/invalid-name:non-existenttag: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed »
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 plus d'informations, consultez la section Utilisation d'images de conteneur non AWS dans Amazon ECS.
L'image référencée dans la définition de tâche se trouve dans un autre compte
Si votre image se trouve dans un autre compte, le message d'erreur suivant peut s'afficher :
« Cannotpullcontainererror: pull access denied for 123456789***.dkr.ecr.us-east-1.amazonaws.com/image-name:tag, repository does not exist or may require 'docker login': denied: User: arn:aws:sts::012345678**:assumed-role/role-name/ec2 instance id is not authorized to perform: ecr:BatchGetImage on resource: arn:aws:ecr:us-east-1:123456789*:repository/image-name:tag because no resource-based policy allows the ecr:BatchGetImage action »
Pour résoudre ce problème, vous devez autoriser l'action ecr:batchGetImage dans les politiques de référentiel du compte dans lequel se trouve l'image.
Par exemple, l'instance associée à votre cluster Amazon ECS se trouve dans le compte A et la définition de tâche fait référence à une image dans le compte B. Les politiques de référentiel du compte B doivent autoriser ecr:batchGetImage pour le rôle IAM de l'instance dans le compte A. Vous devez également activer l'autorisation intercompte dans la politique de référentiel. Puis, vérifiez que l'instance du compte A peut extraire l'image du compte B. Pour plus d'informations, consultez la section Comment autoriser un compte secondaire à envoyer ou extraire des images dans mon référentiel d'images Amazon ECR ?

Contenus pertinents
- demandé il y a 2 anslg...
- demandé il y a 8 moislg...
- demandé il y a 6 moislg...
- demandé il y a 3 moislg...
- 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 3 mois
- AWS OFFICIELA mis à jour il y a un an