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:
- Conexão de Internet Lenta: Uma conexão de internet instável ou lenta pode causar um timeout durante o processo de handshake TLS.
- 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.
- Problemas com Certificados SSL: Configurações inadequadas de certificados SSL podem resultar em falhas durante a comunicação segura.
- 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.
- 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.
- Abra um terminal.
- Execute o seguinte comando para reiniciar o Docker:
bash
sudo systemctl restart docker - 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.
- Abra o arquivo de configuração do Docker, geralmente localizado em
/etc/systemd/system/docker.service.d/http-proxy.conf. - 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" - 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.
- Edite o arquivo de configuração do Docker, como
daemon.json, que geralmente está localizado em/etc/docker/daemon.json. - Adicione a seguinte configuração:
json
{
"registry-mirrors": ["https://dockerhub.azk8s.cn"]
} - 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.
- Abra o arquivo de configuração do Docker.
- Adicione a linha:
json
"debug": true - 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.
- Abra o arquivo de configuração do Nginx.
- 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; - 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.
- 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.
- 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.

コメント