Erros de tarefa CannotPullContainer no Amazon ECS - Amazon Elastic Container Service

Erros de tarefa CannotPullContainer no Amazon ECS

Os erros a seguir indicam que a tarefa falhou ao iniciar porque o Amazon ECS não consegue recuperar a imagem do contêiner especificada.

nota

A versão 1.4 da plataforma do Fargate trunca mensagens de erro longas.

A tarefa não consegue extrair a imagem. Verifique se o perfil tem as permissões para extrair imagens do registro.

Esse erro indica que a tarefa não consegue extrair a imagem especificada na definição de tarefa devido a problemas de permissão.

Para resolver esse problema:

  1. Verifique se a imagem existe no repositório. Para obter informações sobre visualização das imagens, consulte Viewing image details in Amazon ECR no Amazon Elastic Container Registry User Guide.

  2. Verifique se o role-arn tem as permissões corretas para extrair a imagem.

    Para obter informações sobre como visualizar e modificar perfis, consulte Modificar uma função no Guia do usuário do AWS Identity and Access Management.

    A tarefa usa um dos seguintes perfis:

A tarefa não pode extrair "image-name" do repositório "repository URI" do Amazon ECR. Há um problema de conexão entre a tarefa e o Amazon ECR. Verifique a configuração de rede da tarefa.

Esse erro indica que a tarefa não consegue se conectar ao Amazon ECR. Verifique a conexão com o repositório repository URI.

Para obter informações sobre como verificar e resolver o problema, consulte Verificar conectividade de tarefa interrompida do Amazon ECS.

A tarefa não consegue extrair a imagem. Verificar a configuração da rede

Esse erro indica que a tarefa não consegue se conectar ao Amazon ECR.

Para obter informações sobre como verificar e resolver o problema, consulte Verificar conectividade de tarefa interrompida do Amazon ECS.

Erro de API (500): obter https://111122223333.dkr.ecr.us-east-1.amazonaws.com/v2/: net/http: solicitação cancelada enquanto aguardava conexão

Esse erro indica que a conexão atingiu o tempo limite porque não existe uma rota para a Internet.

Para resolver esse problema, você pode:

  • Para tarefas em sub-redes públicas, especifique ENABLED (Habilitado) para Auto-assign public IP (Atribuir IP público automaticamente) ao iniciar a tarefa. Para ter mais informações, consulte Execução de uma aplicação como uma tarefa do Amazon ECS.

  • Para tarefas em sub-redes privadas, especifique DISABLED (DESABILITADO) em Auto-assign public IP (Atribuir IP público automaticamente) ao iniciar a tarefa e configure um Gateway NAT na VPC para encaminhar solicitações para a Internet. Para obter mais informações, consulte Gateways NAT no Guia do usuário da Amazon VPC.

Erro de API

Esse erro indica que há um problema de conexão com o endpoint do Amazon ECR.

Para obter informações sobre como resolver esse problema, consulte Como posso resolver o erro do Amazon ECR “CannotPullContainerError: API error” no Amazon ECS? no site do AWS Support.

gravar /var/lib/docker/tmp/GetImageBlob111111111: nenhum espaço restante no dispositivo

Esse erro indica que não há espaço suficiente em disco.

Para resolver esse problema, libere espaço em disco.

Se você estiver usando a API otimizada para o Amazon ECS, utilize o seguinte comando para recuperar os 20 maiores arquivos do sistema de arquivos:

du -Sh / | sort -rh | head -20

Resultado do exemplo:

5.7G    /var/lib/docker/containers/50501b5f4cbf90b406e0ca60bf4e6d4ec8f773a6c1d2b451ed8e0195418ad0d2
1.2G    /var/log/ecs
594M    /var/lib/docker/devicemapper/mnt/c8e3010e36ce4c089bf286a623699f5233097ca126ebd5a700af023a5127633d/rootfs/data/logs
...

Em alguns casos, o volume raiz pode ser preenchido por um contêiner em execução. Se o contêiner estiver usando o driver de log json-file padrão sem um limite max-size, o arquivo de log poderá ser responsável pela maioria do espaço usado. É possível usar o comando docker ps para verificar qual contêiner está usando o espaço mapeando o nome do diretório da saída acima para o ID do contêiner. Por exemplo:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 50501b5f4cbf amazon/amazon-ecs-agent:latest "/agent" 4 days ago Up 4 days ecs-agent

Por padrão, ao usar o driver de log json-file, o Docker registra a saída padrão (e o erro padrão) de todos os contêineres e a grava em arquivos usando o formato JSON. É possível definir o max-size como uma opção de driver de log, que impede que o arquivo de log ocupe muito espaço. Para obter mais informações, consulte Configurar drivers de registro em log na documentação do Docker.

Este é um trecho de definição de contêiner que mostra como usar essa opção:

{ "log-driver": "json-file", "log-opts": { "max-size": "256m" } }

Uma alternativa caso os logs de contêiner estejam ocupando muito espaço em disco é usar o driver de log awslogs. O driver de log awslogs envia os logs para o CloudWatch, que libera o espaço em disco que seria usado para os logs de contêiner na instância de contêiner. Para ter mais informações, consulte Envio de logs do Amazon ECS para o CloudWatch .

ERRO: toomanyrequests: excesso de solicitações ou você atingiu o limite de taxa de extração.

Esse erro indica que há uma limitação de taxa do Docker Hub.

Se você receber um dos seguintes erros, você provavelmente está atingindo os limites de taxa do Docker Hub:

Para obter mais informações sobre os limites de taxa do Docker Hub, consulte Entender a limitação de taxa do Docker Hub.

Se você tiver aumentado o limite da taxa do Docker Hub e precisar autenticar as extrações do Docker para as instâncias de contêiner, consulte Autenticação de registro privado para instâncias de contêiner.

Resposta de erro do daemon: obter url: net/http: solicitação cancelada enquanto aguardava conexão

Esse erro indica que a conexão atingiu o tempo limite porque não existe uma rota para a Internet.

Para resolver esse problema, você pode:

  • Para tarefas em sub-redes públicas, especifique ENABLED (Habilitado) para Auto-assign public IP (Atribuir IP público automaticamente) ao iniciar a tarefa. Para ter mais informações, consulte Execução de uma aplicação como uma tarefa do Amazon ECS.

  • Para tarefas em sub-redes privadas, especifique DISABLED (DESABILITADO) em Auto-assign public IP (Atribuir IP público automaticamente) ao iniciar a tarefa e configure um Gateway NAT na VPC para encaminhar solicitações para a Internet. Para obter mais informações, consulte Gateways NAT no Guia do usuário da Amazon VPC.

1 nova tentativa de extração de ref.: falha ao copiar: httpReaderSeeker: falha ao abrir: código de status inesperado

Esse erro indica que houve uma falha ao copiar uma imagem.

Para resolver esse problema, consulte um dos seguintes artigos:

acesso para extração negado

Esse erro indica que não há acesso à imagem.

Para resolver esse problema, talvez seja necessário autenticar o cliente Docker com o Amazon ECR. Para obter mais informações, consulte Private registry authentication no Guia do usuário do Amazon ECR.

falha no comando pull: pânico: erro de runtime: endereço de memória inválido ou desreferência de ponteiro nulo

Esse erro indica que não há acesso à imagem devido a um endereço de memória inválido ou à desreferência do ponteiro nulo.

Para resolver esse problema:

  • Verifique se você tem as regras do grupo de segurança para acessar o Amazon S3.

  • Ao usar endpoints de gateway, você deve adicionar uma rota na tabela de rotas para acessar o endpoint.

erro ao extrair conf. de imagem/erro ao extrair configuração de imagem

Este erro indica que um limite de taxa foi atingido ou que há um erro de rede:

Para resolver esse problema, consulte Como posso resolver o erro “CannotPullContainerError” na minha tarefa de tipo de inicialização do EC2 do Amazon ECS.

Contexto cancelado

Esse erro indica que o contexto foi cancelado.

Esse erro comumente ocorre porque a VPC que sua tarefa está usando não tem uma rota para extrair a imagem de contêiner do Amazon ECR.