Comment puis-je résoudre l'erreur « CannotPullContainerError » dans ma tâche de type de lancement Amazon ECS EC2 ?

Lecture de 4 minute(s)
0

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 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 l'image.
  • Il existe une limite de taux DockerHub.
  • Le nom ou la balise de l'image n'existe pas.

Résolution

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 atteindre le 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 dispose d'un accès Internet, consultez les points suivants :

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 de taux d'extraction DockerHub est atteinte

Si vous essayez d'extraire une image depuis DockerHub et que vous avez atteint votre limite de taux d'extraction, vous recevez le message d'erreur suivant :

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, passez en revue les étapes décrites dans Comment résoudre l'erreur « CannotPullContainerError: You have reached your pull rate limit » dans Amazon ECS ?

Le nom ou la balise de l'image n'existe pas

Si une image ou sa balise associée hébergée dans Amazon ECR définie dans votre définition de tâche 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 le champ image dans la définition de votre 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 une extraction.

Si votre tâche extrait une image d'un registre autre qu'Amazon ECR et que des informations sont manquantes, vous recevez un message d'erreur différent. L'erreur suivante se produit si l'image n'existe pas, si la balise 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ésoudrece problème, vérifiez le champ image dans la définition de votre tâche. Vérifiez que l'image existe dans le registre de conteneurs correspondant. Si l'image existe, assurez-vous de fournir les informations d'identification correctes. Pour plus d'informations, consultez Authentification du registre privé pour les tâches.


AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 9 mois