Errores de tareas CannotPullContainer en Amazon ECS
Los siguientes errores indican que la tarea no se pudo iniciar porque Amazon ECS no pudo recuperar la imagen del contenedor especificada.
nota
La versión 1.4 de la plataforma de Fargate trunca los mensajes de error largos.
Para comprobar si hay algún mensaje de error en las tareas detenidas a través de la AWS Management Console, consulte Visualización de los errores de las tareas detenidas de Amazon ECS.
Errores
- La tarea no puede extraer la imagen. Compruebe que el rol tenga los permisos para extraer imágenes del registro.
- La tarea no puede extraer el ‘nombre de la imagen’ del ‘URI del repositorio’ de Amazon ECR. Hay un problema de conexión entre la tarea y Amazon ECR. Compruebe la configuración de red de la tarea.
- La tarea no puede extraer la imagen. Compruebe la configuración de la red y vuelva a intentarlo.
- Error de API (500): obtener https://111122223333.dkr.ecr.us-east-1.amazonaws.com/v2/: net/http: solicitud cancelada mientras se esperaba la conexión
- Errores de API
- escribir /var/lib/docker/tmp/GetImageBlob111111111: no queda espacio en el dispositivo
- ERROR: toomanyrequests: demasiadas solicitudes o ha alcanzado el límite de su tasa de extracción.
- Respuesta de error del daemon: obtener url: net/http: solicitud cancelada mientras se esperaba la conexión
- ref pull se ha reintentado 1 vez: no se pudo copiar: httpReaderSeeker: no se pudo abrir: código de estado inesperado
- acceso de extracción denegado
- El comando de extracción falló: pánico: error de tiempo de ejecución: dirección de memoria no válida o falta de referencia del puntero
- error al extraer la imagen conf/error al extraer la configuración de la imagen
- Contexto cancelado
La tarea no puede extraer la imagen. Compruebe que el rol tenga los permisos para extraer imágenes del registro.
Este error indica que la tarea no puede extraer la imagen especificada en la definición de la tarea debido a problemas con los permisos.
Para resolver este problema, siga estos pasos:
-
Compruebe si la imagen existe en el
irepository
. Para obtener información sobre cómo ver las imágenes, consulte Viewing image details in Amazon ECR en la Guía del usuario de Amazon Elastic Container Registry. -
Compruebe que el rol
role-arn
tenga los permisos correctos para extraer la imagen.Para obtener información acerca de cómo actualizar los roles, consulte Actualización de los permisos de un rol en la Guía del usuario de AWS Identity and Access Management.
La tarea utiliza uno de los siguientes roles:
-
Para tareas con el tipo de lanzamiento de Fargate, este es el rol de ejecución de tareas. Para obtener información acerca de los permisos adicionales para Amazon ECR, consulte Las tareas de Fargate que extraen imágenes de Amazon ECR a través de permisos de puntos de conexión de interfaz.
-
Para tareas con el tipo de lanzamiento de EC2, este es el rol de la instancia de contenedor. Para obtener información acerca de los permisos adicionales para Amazon ECR, consulte Permisos de Amazon ECR.
-
La tarea no puede extraer el ‘nombre de la imagen
’ del ‘URI del repositorio
’ de Amazon ECR. Hay un problema de conexión entre la tarea y Amazon ECR. Compruebe la configuración de red de la tarea.
Este error indica que la tarea no se puede conectar a Amazon ECR. Compruebe la conexión al URI del repositorio
.
Para obtener información acerca de cómo verificar y resolver este problema, consulte Comprobación de la conectividad de las tareas detenidas de Amazon ECS.
La tarea no puede extraer la imagen. Compruebe la configuración de la red y vuelva a intentarlo.
Este error indica que la tarea no se puede conectar a Amazon ECR.
Para obtener información acerca de cómo verificar y resolver este problema, consulte Comprobación de la conectividad de las tareas detenidas de Amazon ECS.
Error de API (500): obtener https://111122223333.dkr.ecr.us-east-1.amazonaws.com/v2/: net/http: solicitud cancelada mientras se esperaba la conexión
Este error indica que se ha agotado el tiempo de espera de la conexión porque no existe una ruta a Internet.
Para solucionar este problema, puede:
-
Para tareas en subredes públicas, especificar ENABLED (HABILITADO) para Auto-assign public IP (Asignar IP pública automáticamente) al ejecutar la tarea. Para obtener más información, consulte Ejecución de una aplicación como tarea de Amazon ECS.
-
Para tareas en subredes privadas, especifique DISABLED (Deshabilitado) en Auto-assign public IP (Asignar IP pública automáticamente) al lanzar la tarea y configure una gateway NAT en la VPC para dirigir las solicitudes a Internet. Para obtener más información, consulte Gateways NAT en la Guía del usuario de Amazon VPC.
Errores de API
Este error indica que hay un problema de conexión con el punto de conexión de Amazon ECR.
Para obtener información sobre cómo resolver este problema, consulte ¿Cómo puedo resolver el error “CannotPullContainerError: API error” en Amazon ECS?
escribir /var/lib/docker/tmp/GetImageBlob111111111
: no queda espacio en el dispositivo
Este error indica que no hay suficiente espacio en disco.
Para solucionar este problema, libere espacio en el disco.
Si utiliza la AMI optimizada para Amazon ECS, puede emplear el siguiente comando para recuperar los 20 archivos más grandes del sistema de archivos:
du -Sh / | sort -rh | head -20
Ejemplo de salida:
5.7G /var/lib/docker/containers/50501b5f4cbf90b406e0ca60bf4e6d4ec8f773a6c1d2b451ed8e0195418ad0d2 1.2G /var/log/ecs 594M /var/lib/docker/devicemapper/mnt/c8e3010e36ce4c089bf286a623699f5233097ca126ebd5a700af023a5127633d/rootfs/data/logs ...
En algunos casos, un contenedor en ejecución puede llenar el volumen raíz. Si el contenedor utiliza el controlador de registros json-file
predeterminado sin un límite max-size
, es posible que el archivo de registro sea responsable de la mayor parte de ese espacio utilizado. Puede utilizar el comando docker ps
para comprobar qué contenedor está utilizando el espacio mapeando el nombre del directorio de la salida anterior al ID del contenedor. Por ejemplo:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 50501b5f4cbf amazon/amazon-ecs-agent:latest "/agent" 4 days ago Up 4 days ecs-agent
De forma predeterminada, cuando se utiliza el controlador de registros json-file
, Docker captura la salida estándar (y el error estándar) de todos los contenedores y los escribe en archivos con formato JSON. Puede establecer el max-size
como una opción del controlador de registros, lo que impide que el archivo de registro ocupe demasiado espacio. Para obtener más información, consulte Controlador de registro de archivos JSON
A continuación se muestra un fragmento de definición de contenedor que muestra cómo utilizar esta opción:
{ "log-driver": "json-file", "log-opts": { "max-size": "
256m
" } }
Si los registros de contenedor ocupan demasiado espacio en el disco, una alternativa consiste en utilizar el controlador de registros awslogs
. El controlador de registros awslogs
envía los registros a CloudWatch, lo que libera espacio en disco que, de lo contrario, utilizarían los registros de contenedor de la instancia de contenedor. Para obtener más información, consulte Envío de registros de Amazon ECS a CloudWatch .
ERROR: toomanyrequests: demasiadas solicitudes o ha alcanzado el límite de su tasa de extracción.
Este error indica que hay un límite de velocidad de Docker Hub.
Si recibe uno de los siguientes errores, es probable que haya alcanzado los límites de tasa de Docker Hub:
Para obtener más información acerca de los límites de tasa de Docker Hub, consulte Descripción de la limitación de velocidad de Docker Hub
Si ha aumentado el límite de tasa de Docker Hub y necesita autenticar las extracciones de Docker para las instancias de contenedor, consulte Private registry authentication for container instances.
Respuesta de error del daemon: obtener url
: net/http: solicitud cancelada mientras se esperaba la conexión
Este error indica que se ha agotado el tiempo de espera de la conexión porque no existe una ruta a Internet.
Para solucionar este problema, puede:
-
Para tareas en subredes públicas, especificar ENABLED (HABILITADO) para Auto-assign public IP (Asignar IP pública automáticamente) al ejecutar la tarea. Para obtener más información, consulte Ejecución de una aplicación como tarea de Amazon ECS.
-
Para tareas en subredes privadas, especifique DISABLED (Deshabilitado) en Auto-assign public IP (Asignar IP pública automáticamente) al lanzar la tarea y configure una gateway NAT en la VPC para dirigir las solicitudes a Internet. Para obtener más información, consulte Gateways NAT en la Guía del usuario de Amazon VPC.
ref pull se ha reintentado 1 vez: no se pudo copiar: httpReaderSeeker: no se pudo abrir: código de estado inesperado
Este error indica que se ha producido un error al copiar una imagen.
Para resolver este problema, consulte uno de estos artículos:
-
Para las tareas de Fargate, consulte Cómo resuelvo el error “cannotpullcontainererror” en las tareas de Amazon ECS alojadas en Fargate
. -
Para otras tareas, consulte Cómo resuelvo el error “cannotpullcontainererror” en las tareas de Amazon ECS
.
acceso de extracción denegado
Este error indica que no hay acceso a la imagen.
Para resolver este problema, es posible que deba autenticar su cliente de Docker con Amazon ECR. Para obtener más información, consulte Private registry authentication en la Guía del usuario de Amazon ECR.
El comando de extracción falló: pánico: error de tiempo de ejecución: dirección de memoria no válida o falta de referencia del puntero
Este error indica que no se puede acceder a la imagen debido a una dirección de memoria no válida o a una falta de referencia del puntero.
Para resolver este problema, siga estos pasos:
-
Compruebe que dispone de las reglas del grupo de seguridad para acceder a Amazon S3.
-
Cuando utilice puntos de conexión de puerta de enlace, debe agregar una ruta en la tabla de enrutamiento para acceder al punto de conexión.
error al extraer la imagen conf/error al extraer la configuración de la imagen
Este error indica que se ha alcanzado un límite de velocidad o que se ha producido un error de red:
Para resolver este problema, consulte Cómo puedo resolver el error “CannotPullContainerError” en mi tarea de tipo de lanzamiento de Amazon ECS EC2
Contexto cancelado
Este error indica que se canceló el contexto.
La causa común de este error es que la VPC que está utilizando la tarea no cuenta con ninguna ruta para extraer la imagen de contenedor de Amazon ECR.