Solución de problemas y comandos de Docker al usar Amazon ECR - Amazon ECR

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Solución de problemas y comandos de Docker al usar Amazon ECR

En algunos casos, la ejecución de un comando de Docker en Amazon ECR puede generar un mensaje de error. A continuación se explican algunos de los mensajes de error más comunes y sus posibles soluciones.

Los registros de Docker no contienen los mensajes de error esperados

Para empezar a depurar cualquier problema relacionado con Docker, empieza por activar la salida de depuración de Docker en el daemon de Docker que se ejecuta en tus instancias host. Si utiliza imágenes extraídas de Amazon ECR en instancias de contenedor de Amazon ECS, consulte Configuración de la salida detallada del daemon de Docker en la Guía para desarrolladores de Amazon Elastic Container Service.

Error «Filesystem Verification Failed» (Fallo al verificar el sistema de archivos) o «404: Image Not Found» (Imagen no encontrada) al extraer una imagen de un repositorio de Amazon ECR

Puede producirse el error Filesystem verification failed al ejecutar el comando docker pull para extraer una imagen de un repositorio de Amazon ECR con Docker 1.9 o versiones posteriores. Es posible que reciba el error 404: Image not found cuando utilice versiones de Docker anteriores a la 1.9.

A continuación se explican los posibles motivos.

El disco local está lleno

Si el disco local en el que ejecuta el comando docker pull está lleno, es posible que el hash SHA-1 que se haya calculado en el archivo local sea distinto del que haya calculado Amazon ECR. Compruebe que el disco local cuenta con suficiente espacio libre para almacenar la imagen de Docker que está extrayendo. Puede eliminar imágenes antiguas y así hacer sitio para las nuevas. Ejecute el comando docker images para ver una lista de las imágenes de Docker descargadas localmente y sus tamaños.

El cliente no se puede conectar al repositorio remoto debido a un error de red.

Las llamadas a un repositorio de Amazon ECR requieren conexión a Internet. Verifique la configuración de red y compruebe que otras herramientas y aplicaciones sí pueden obtener acceso a recursos en Internet. Si ejecuta docker pull en una instancia de Amazon EC2 en una subred privada, verifique que la subred tenga una ruta a Internet. Utilice un servidor de conversión de las direcciones de red (NAT) o una gateway de NAT administrada.

Actualmente, las llamadas a un repositorio de Amazon ECR también requieren acceso de red a Amazon Simple Storage Service (Amazon S3) a través del firewall de su compañía. Si su organización utiliza software de firewall o un dispositivo NAT que permite puntos de enlace de servicio, asegúrese de que los puntos de enlace de servicio de Amazon S3 de su región actual estén permitidos.

Si está usando Docker tras un proxy HTTP, puede configurar Docker con los ajustes del proxy correspondientes. Para obtener más información, consulte la sección HTTP proxy de la documentación de Docker.

Error «Filesystem Layer Verification Failed» (Fallo al verificar la capa del sistema de archivos) al extraer imágenes de Amazon ECR

Puede que se produzca el error image image-name not found al usar el comando docker pull para extraer imágenes. Si revisa los logs de Docker, es posible que encuentre un error como el siguiente:

filesystem layer verification failed for digest sha256:2b96f...

Este error indica que no se han podido descargar una o varias capas de la imagen. A continuación se explican los posibles motivos.

Está usando una versión antigua de Docker

Este error puede ocurrir en un reducido porcentaje de casos al utilizar una versión de Docker anterior a la 1.10. Actualice Docker a la versión 1.10 o a una posterior.

El cliente ha detectado un error de red o disco

Un disco lleno o un problema de red pueden impedir la descarga de una o varias capas, tal como se ha explicado previamente en la descripción del mensaje Filesystem verification failed. Siga las recomendaciones anteriores para asegurarse de que el sistema de archivos no está lleno y que la red permite el acceso a Amazon S3.

Errores HTTP 403 o error «no basic auth credentials» (no hay credenciales de autenticación básica) al insertar contenido en un repositorio

Hay ocasiones en que es posible que reciba un error HTTP 403 (Forbidden) o el mensaje de error no basic auth credentials desde los comandos docker push o docker pull, incluso a pesar de haberse autenticado correctamente en Docker con el comando aws ecr get-login-password. A continuación se indican algunas causas conocidas de este problema:

Se ha autenticado en una región diferente

Las solicitudes de autenticación están vinculadas con regiones específicas y no se pueden utilizar en otras regiones. Por ejemplo, si obtiene un token de autorización de EE. UU. Oeste (Oregón), no puede utilizarlo para autenticarse en sus repositorios en EE. UU. Este (Norte de Virginia). Para resolver el problema, asegúrese de haber recuperado un token de autenticación de la misma región en la que se encuentra el repositorio. Para obtener más información, consulte Autenticación de registro privado en Amazon ECR.

Se ha autenticado para enviar a un repositorio para el que no tiene permisos

No dispone de los permisos necesarios para enviar al repositorio. Para obtener más información, consulte Políticas de repositorios privados en Amazon ECR.

Su token ha caducado.

El periodo predeterminado de vencimiento de los tokens de autorización obtenidos mediante la operación GetAuthorizationToken es de 12 horas.

Error en el gestor de credenciales wincred

Algunas versiones de Docker para Windows utilizan un gestor de credenciales llamado wincred que no gestiona correctamente el comando de inicio de sesión de Docker generado por aws ecr get-login-password (para obtener más información, consulte https://github.com/docker/docker/issues/22910). Puede ejecutar el comando de inicio de sesión de Docker generado, pero si intenta enviar o extraer imágenes, el comando falla. Este problema se puede solucionar eliminando el esquema https:// del argumento del registro en el comando de inicio de sesión de Docker generado desde aws ecr get-login-password. A continuación se muestra un ejemplo de comando de inicio de sesión de Docker sin el esquema HTTPS.

docker login -u AWS -p <password> <aws_account_id>.dkr.ecr.<region>.amazonaws.com