Diagnosticando Problemas de "Conectividade Externa"
Quando um contendor Docker não consegue conectar-se a recursos externos à rede Docker, frequentemente é referido como um problema de "conectividade externa". Existem várias causas comuns para este problema, e o diagnóstico pode ser um processo de várias etapas.
Verificar a Configuração de Rede do Contendor
A primeira etapa é verificar a configuração de rede do contendor. Pode usar o comando docker inspect para visualizar as definições de rede do contendor:
docker inspect web | grep -i network
Isto mostrará o driver de rede, o endereço IP, o gateway e outras informações relacionadas com a rede para o contendor. Certifique-se de que o contendor está conectado à rede correta e que as definições de rede estão corretas.
Verificar as Regras do Firewall do Host
Se a configuração de rede do contendor parecer correta, a próxima etapa é verificar as regras do firewall na máquina hospedeira. Certifique-se de que as portas necessárias estão abertas e que o firewall não está a bloquear o tráfego para ou do contendor.
Pode usar o comando iptables para visualizar e gerir as regras do firewall no host:
sudo iptables -L
Inspecionar a Conectividade de Rede
Também pode usar os comandos ping e telnet para testar a conectividade de rede entre o contendor e os recursos externos. A partir dentro do contendor, tente fazer um ping a um endereço IP externo conhecido ou estabelecer uma ligação telnet a uma porta específica.
docker exec web ping 8.8.8.8
docker exec web telnet example.com 80
Se os comandos ping ou telnet falharem, pode indicar um problema de roteamento de rede ou de firewall.
Rever os Logs do Docker
Finalmente, verifique os logs do Docker para quaisquer mensagens de erro ou pistas que possam ajudar a diagnosticar o problema. Pode usar o comando docker logs para visualizar os logs de um contendor específico.
docker logs web
Procure por quaisquer mensagens de erro ou avisos relacionados com a conectividade de rede ou acesso externo.
Seguindo estas etapas, deverá ser capaz de identificar a causa raiz do problema de "conectividade externa" e prosseguir para a resolução do problema.