¿Cómo puedo resolver el error «CannotPullContainerError» en mi tarea de tipo de lanzamiento de Amazon EC2?
Cuando lanzo una tarea de EC2 en Amazon Elastic Container Service (Amazon ECS), recibo el siguiente error: «CannotPullContainerError».
Descripción breve
El error CannotPullContainerError se produce debido a alguno de los siguientes problemas:
- Una tarea del tipo de lanzamiento de Amazon Elastic Compute Cloud (Amazon EC2) no puede extraer la imagen debido a un error de configuración de la red.
- Un rol de AWS Identity and Access Management (IAM) no tiene los permisos adecuados para extraer imágenes.
- Hay un límite de velocidad en DockerHub.
- El nombre o la etiqueta de la imagen no existen.
Para solucionar los errores de tareas de Amazon ECS que no se inician, use el runbook AWSSupport-TroubleshootECSTaskFailedToStart. A continuación, consulte los pasos de solución de problemas correspondientes a su problema.
Resolución
Importante:
- Use el runbook AWSSupport-TroubleshootECSTaskFailedToStart en la misma región de AWS en la que se encuentran los recursos del clúster de ECS.
- Cuando use el runbook, debe usar el ID de la tarea fallida más reciente. Si la tarea fallida forma parte de un servicio de Amazon ECS, use la tarea fallida más reciente del servicio. La tarea fallida debe estar visible en ECS:DescribeTasks durante la automatización. De forma predeterminada, las tareas de ECS detenidas están visibles durante 1 hora después de entrar en el estado Detenido. El uso del identificador de tarea fallida más reciente evita que la limpieza del estado de la tarea interrumpa el análisis durante la automatización.
Para obtener instrucciones sobre cómo iniciar el runbook, consulte AWSSupport-TroubleshootECSTaskFailedToStart. Dependiendo del resultado de la automatización, use uno de los siguientes pasos manuales de solución de problemas.
La configuración de red de su instancia de contenedor de Amazon ECS es incorrecta
Si su instancia de contenedor de Amazon ECS no tiene conexión a Internet, no podrá llegar al punto de conexión de Amazon Elastic Container Registry (Amazon ECR). Sin una conexión al punto de conexión, la instancia no podrá extraer la imagen. Para comprobar que la instancia de contenedor de ECS tiene acceso a Internet, revise los siguientes puntos:
- Confirme que sus instancias tengan acceso a Internet a través de una puerta de enlace de Internet o una puerta de enlace de traducción de direcciones de red (NAT).
Nota: En lugar de una puerta de enlace NAT, puede usar AWS PrivateLink. Para evitar errores, asegúrese de que AWS PrivateLink esté configurado correctamente. - Compruebe que se permite el acceso HTTPS entrante a través del puerto 443 en los niveles de instancia, grupo de seguridad y lista de control de acceso de la red (ACL de red).
Para solucionar problemas de conectividad de la puerta de enlace NAT, consulte ¿Por qué mi instancia de Amazon EC2 de una subred privada no puede conectarse a Internet mediante una puerta de enlace NAT?
Para solucionar problemas de conectividad de la puerta de enlace a Internet, consulte ¿Por qué mi instancia de Amazon EC2 no puede conectarse a Internet mediante una puerta de enlace de Internet? - Si usa un punto de conexión de VPC para conectarse a un punto de conexión de Amazon ECR, compruebe sus grupos de seguridad. Confirme que los grupos de seguridad de su punto de conexión de VPC permiten que la instancia del contenedor de ECS los utilice.
- Si recibe el mensaje de error «CannotPullContainerError: API error», consulte ¿Cómo puedo resolver el error «CannotPullContainerError: API error» en Amazon ECS?
Su rol de IAM no tiene los permisos adecuados para extraer imágenes
Confirme que el rol de IAM de la instancia asociado al perfil de instancia tenga permisos para acceder al repositorio de Amazon ECR.
Nota: La política administrada de AWS AmazonEC2ContainerRegistryReadOnly proporciona los permisos mínimos necesarios para extraer imágenes.
Se alcanza el límite de velocidad de extracción de DockerHub
Si está intentando extraer una imagen de DockerHub y ha alcanzado el límite de velocidad de extracción, recibirá el mensaje de error siguiente:
«CannotPullContainerError: la inspección de la imagen se ha vuelto a intentar 5 veces: httpReaderSeeker: failed open: unexpected status code https://registry-1.docker.io/v2/manifests/sha256:2bb501e6429 Demasiadas solicitudes: mensaje del servidor: toomanyrequests:»
Para resolver este problema, consulte los pasos que se indican en ¿Cómo puedo resolver el error «CannotPullContainerError: Ha alcanzado su límite de velocidad de extracción» en Amazon ECS?
El nombre o la etiqueta de la imagen no existen
Si una imagen o su etiqueta asociada alojada en Amazon ECR definida en su definición de tarea no existe, recibirá el error siguiente:
«Cannotpullcontainererror: se ha vuelto a intentar extraer el manifiesto de la imagen 1 vez: no se pudo resolver la referencia 123456789.dkr.ecr.ap-southeast-2.amazonaws.com/image-name:tag: 123456789**.dkr.ecr.ap-southeast-2.amazonaws.com/image-name:tag: not found**»
Para resolver este problema, compruebe el campo de imagen en la definición de la tarea. Confirme que el repositorio correspondiente y la etiqueta definida estén presentes en el registro de contenedores del que se va a realizar la extracción.
Si la tarea extrae una imagen de un registro distinto de Amazon ECR y le falta información, recibirá otro error distinto. Si la imagen no existe, la etiqueta no existe o no se proporcionan las credenciales del registro, se mostrará el error siguiente:
«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»
Para resolver este problema, verifique el campo de imagen en la definición de la tarea. Confirme que la imagen existe en el registro de contenedores correspondiente. Si la imagen existe, asegúrese de proporcionar las credenciales correctas. Para obtener más información, consulte Autenticación de registros privados para tareas.
Contenido relevante
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace 5 meses
- OFICIAL DE AWSActualizada hace 3 años
- OFICIAL DE AWSActualizada hace 2 años