Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
Como resolvo erros “CannotPullContainerError” ao iniciar uma tarefa do EC2 no Amazon ECS?
Quando eu inicio uma tarefa do Amazon Elastic Compute Cloud (Amazon EC2) no Amazon Elastic Container Service (Amazon ECS), recebo o erro “CannotPullContainerError”.
Breve descrição
O CannotPullContainerError ocorre pelos seguintes motivos:
- Uma tarefa do tipo de inicialização do Amazon EC2 não pode extrair a imagem porque você configurou a rede incorretamente.
- Seu perfil do AWS Identity and Access Management (AWS IAM) não tem as permissões para extrair a imagem.
- Você atingiu a cota de taxa do DockerHub.
- O nome ou a tag da imagem não existe.
- A definição da tarefa faz referência a uma imagem que está em uma conta diferente da AWS.
Resolução
Usar o runbook AWSSupport-TroubleshootECSTaskFailedToStart para solucionar problemas
Use o runbook AWSSupport-TroubleshootECSTaskFailedToStart para solucionar as tarefas do Amazon ECS que falham ao iniciar. Ao usar o runbook, você deve usar o ID de tarefa que apresentou falha mais recentemente. Se a tarefa com falha fizer parte do serviço Amazon ECS, use a tarefa que falhou mais recentemente no serviço. A tarefa com falha deve estar visível em ECS:DescribeTasks durante a execução da automação. Por padrão, as tarefas do Amazon ECS ficam visíveis por 1 hora após entrarem no estado Interrompido.
Para iniciar o runbook, consulte AWSSupport-TroubleshootECSTaskFailedToStart. Com base na saída da automação, use uma das seguintes resoluções.
Importante: use o runbook AWSSupport-TroubleshootECSTaskFailedToStart na mesma região AWS em que seus recursos de cluster do Amazon ECS estão localizados.
Sua configuração de rede de instância de contêiner do Amazon ECS está incorreta
Se sua instância de contêiner do Amazon ECS não tiver uma conexão com a Internet, ela não poderá acessar o endpoint do Amazon Elastic Container Registry (Amazon ECR). Sem uma conexão com o endpoint, a instância não pode extrair a imagem. Para verificar se sua instância de contêiner do Amazon ECS tem acesso à Internet, execute as seguintes ações:
- Confirme se suas instâncias têm acesso à Internet por meio de um gateway da Internet ou de um gateway NAT. Para solucionar problemas de conectividade do gateway NAT, consulte Por que minha instância do Amazon EC2 em uma sub-rede privada não pode se conectar à Internet usando um gateway NAT?
Observação: é possível usar o AWS PrivateLink em vez do gateway NAT. Para evitar erros, certifique-se de configurar corretamente o AWS PrivateLink. - Verifique se o acesso HTTPS de entrada é permitido pela porta 443 nos níveis da instância, do grupo de segurança e da lista de controle de acesso à rede (ACL de rede). Para solucionar problemas de conectividade do gateway da internet, consulte Por que minha instância do Amazon EC2 não consegue acessar a Internet por meio de um gateway da internet?
- Se você usa um endpoint de nuvem privada virtual (VPC) para se conectar a um endpoint do Amazon ECR, verifique seus grupos de segurança de instâncias de contêiner do Amazon ECS. Permita que sua instância de contêiner do Amazon ECS envie tráfego para grupos de segurança do seu endpoint da VPC.
- Se você receber a mensagem de erro CannotPullContainerError: API error, consulte Como resolvo tarefas do Amazon ECS que não conseguem extrair imagens do Amazon ECR?
Seu perfil do IAM não tem as permissões para extrair imagens
Confirme se o perfil do IAM da instância associado ao perfil de instância tem permissões para acessar o repositório do Amazon ECR.
Observação: a política gerenciada pela AWS AmazonEC2ContainerRegistryReadOnly fornece as permissões mínimas necessárias para extrair imagens.
O limite da taxa de tração do DockerHub foi atingido
Se você estiver tentando extrair uma imagem do DockerHub e atingir a cota da taxa de extração, receberá a seguinte mensagem de erro:
“CannotPullContainerError: a inspeção da imagem foi repetida 5 vezes: httpReaderSeeker: falha na abertura: código de status inesperado https://registry-1.docker.io/v2/manifests/sha256:2bb501e6429 Muitas solicitações - Mensagem do servidor: toomanyrequests:”
Para resolver esse problema, consulte Como resolvo o erro “CannotPullContainerError: Você atingiu seu limite de taxa de extração” no Amazon ECS?
O nome ou a tag da imagem não existe
Se você definir uma imagem ou tag hospedada no Amazon ECR, mas a imagem ou tag não existir, você receberá a seguinte mensagem de erro:
“Cannotpullcontainererror: pull image manifesto foi repetido 1 vez (es): falha ao resolver o ref 123456789.dkr. ecr.ap-southeast-2.amazonaws.com/image-name:tag: 123456789**.dkr.ecr.ap-southeast-2.amazonaws.com/image-name:tag: não encontrado**”
Para resolver esse problema, verifique se o campo de imagem tem o valor correto na definição da tarefa. Confirme se o repositório correspondente e a tag estão presentes no registro do contêiner do qual você está obtendo.
Se sua tarefa extrair uma imagem de um registro diferente do Amazon ECR e sua tarefa não tiver informações, você receberá um erro diferente. O erro a seguir ocorre quando a imagem não existe, a tag não existe ou se você não forneceu as credenciais do registro:
“Cannotpullcontainererror: pull image manifesto foi repetido 1 vez (es): falha ao resolver ref docker.io/library/invalid-name:non-existenttag: acesso de extração negado, o repositório não existe ou pode exigir autorização: mensagem do servidor: insufficient_scope: falha na autorização”
Para resolver esse problema, verifique o campo de imagem na definição da sua tarefa. Confirme se a imagem existe no registro de contêiner correspondente. Se a imagem existir, certifique-se de fornecer as credenciais corretas. Para obter mais informações, consulte Como usar imagens de contêiner que não são da AWS no Amazon ECS.
A imagem referenciada na definição da tarefa está em uma conta diferente
Se sua imagem estiver em uma conta diferente, você poderá receber a seguinte mensagem de erro:
“Cannotpullcontainererror: acesso de extração negado para 123456789***.dkr.ecr.us-east-1.amazonaws.com/image-name:tag, o repositório não existe ou pode exigir ‘docker login’: negado: Usuário: arn:aws:sts::012345678**:assumed-role/role-name/ec2 instance id não está autorizado a executar: ecr:BatchGetImage no recurso: arn:aws:ecr:us-east-1:123456789*:repository/image-name:tag porque nenhuma política baseada em recursos permite a ação ecr:BatchGetImage action”
Para resolver esse problema, você deve permitir a ação ecr:batchGetImage nas políticas do repositório na conta em que a imagem está localizada.
Por exemplo, a instância associada ao cluster do Amazon ECS está na Conta A e a definição da tarefa faz referência a uma imagem na Conta B. As políticas do repositório na Conta B devem permitir ecr:BatchGetImage para o perfil do IAM da instância na Conta A. Você também deve ativar a permissão entre contas na política do repositório. Em seguida, confirme se a instância na Conta A pode extrair a imagem da Conta B. Para mais informações, consulte Como faço para permitir que uma conta secundária envie ou extraia imagens no meu repositório de imagens do Amazon ECR?

Conteúdo relevante
- feita há 3 diaslg...
- feita há 2 meseslg...
- feita há um mêslg...
- Resposta aceitafeita há 20 diaslg...
- feita há 4 diaslg...
- AWS OFICIALAtualizada há 3 meses
- AWS OFICIALAtualizada há 2 meses
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há um mês