Como Corrigir o Erro ERROR: Get https://registry-1.docker…

スポンサーリンク

Erro “ERROR: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout in Docker”

Visão Geral do Erro

O erro “ERROR: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout in Docker” é comum entre os usuários do Docker, especialmente aqueles que estão tentando puxar imagens do registro Docker Hub. Esse problema geralmente está relacionado a questões de conectividade de rede, configuração de proxy, ou até mesmo problemas com certificados SSL. Neste artigo, abordaremos as causas comuns do erro e forneceremos métodos para resolvê-lo.

Causas Comuns

Existem várias razões pelas quais esse erro pode ocorrer, incluindo:

  1. Conexão de Internet Lenta: Uma conexão de internet instável ou lenta pode causar um timeout durante o processo de handshake TLS.
  2. Configurações de Proxy: Se você estiver em uma rede corporativa que utiliza um servidor proxy, as configurações de proxy podem estar incorretas ou ausentes.
  3. Problemas com Certificados SSL: Configurações inadequadas de certificados SSL podem resultar em falhas durante a comunicação segura.
  4. Mudanças nas Configurações do Docker: Alterações nas configurações do Docker ou do sistema operacional podem impactar a capacidade do Docker de se conectar ao registro.
  5. Rede Bloqueada ou Filtrada: Alguns firewalls ou políticas de rede podem bloquear o acesso ao Docker Hub.

Métodos de Solução

Método 1: Reiniciar o Docker

Uma solução simples, mas eficaz, é reiniciar o serviço do Docker. Isso pode resolver problemas temporários de conectividade.

  1. Abra um terminal.
  2. Execute o seguinte comando para reiniciar o Docker:
    bash
    sudo systemctl restart docker
  3. Tente puxar a imagem novamente.

Método 2: Configurar Proxy

Se você estiver em uma rede que usa um servidor proxy, você precisará configurar suas variáveis de ambiente de proxy corretamente.

  1. Abra o arquivo de configuração do Docker, geralmente localizado em /etc/systemd/system/docker.service.d/http-proxy.conf.
  2. Adicione ou verifique as seguintes linhas:
    conf
    [Service]
    Environment="HTTP_PROXY=http://pqr.corp.xxx.com:8080"
    Environment="HTTPS_PROXY=https://pqr.corp.xxx.com:8080"
    Environment="NO_PROXY=localhost,127.0.0.1"
  3. Salve as alterações e reinicie o Docker:
    bash
    sudo systemctl daemon-reload
    sudo systemctl restart docker

Método 3: Alterar o Espelho do Registro

Se o problema persistir, pode ser útil mudar o espelho do registro Docker. Isso pode ajudar a contornar problemas de rede.

  1. Edite o arquivo de configuração do Docker, como daemon.json, que geralmente está localizado em /etc/docker/daemon.json.
  2. Adicione a seguinte configuração:
    json
    {
    "registry-mirrors": ["https://dockerhub.azk8s.cn"]
    }
  3. Salve o arquivo e reinicie o Docker:
    bash
    sudo systemctl restart docker

Método 4: Ativar o Modo de Depuração

Para obter mais informações sobre o que pode estar causando o erro, você pode ativar o modo de depuração no Docker.

  1. Abra o arquivo de configuração do Docker.
  2. Adicione a linha:
    json
    "debug": true
  3. Salve e reinicie o Docker.

Método 5: Verificar Certificados SSL

Se você estiver usando um servidor Nginx, verifique se as definições de certificados SSL estão corretas.

  1. Abra o arquivo de configuração do Nginx.
  2. Verifique se você tem as seguintes linhas:
    nginx
    ssl_certificate /etc/nginx/ssl/my-certs/myCert.pem;
    ssl_certificate_key /etc/nginx/ssl/my-certs/myserver.key;
  3. Salve o arquivo e reinicie o Nginx.

Método 6: Atualizar o Curl

Em alguns casos, pode haver problemas relacionados a versões antigas do curl. Atualize o curl para a versão mais recente.

  1. Execute o seguinte comando para atualizar o curl:
    bash
    sudo apt-get update
    sudo apt-get install curl

Método 7: Limpar Diretórios Temporários

A limpeza de diretórios temporários pode resolver problemas relacionados a arquivos corrompidos.

  1. Execute o seguinte comando para remover arquivos temporários:
    bash
    sudo rm -rf /var/lib/docker/tmp/*

Dicas de Prevenção

Para evitar que esse erro ocorra no futuro, considere as seguintes dicas:

  • Mantenha seu Docker e todas as dependências atualizadas.
  • Verifique regularmente suas configurações de rede e proxy.
  • Considere usar uma conexão de internet mais rápida e confiável para operações com o Docker.
  • Mantenha backups das configurações do Docker.

Resumo

O erro “ERROR: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout in Docker” pode ser frustrante, mas com os métodos descritos neste artigo, você pode resolvê-lo de maneira eficaz. Seja reiniciando o Docker, configurando corretamente as variáveis de proxy, ou atualizando seus certificados SSL, há várias abordagens que podem ajudar a restaurar sua capacidade de puxar imagens do Docker Hub com sucesso. Se persistir, consulte a documentação oficial do Docker ou busque suporte na comunidade.

コメント

タイトルとURLをコピーしました