Problema de localhost no Docker
Dentro de um contêiner, localhost normalmente significa o próprio contêiner. Isso muda como você chama o host e outros serviços.
Checklist rápido
- 1 Decida onde a request acontece: navegador do host, terminal do host, contêiner ou outro contêiner.
- 2 Use localhost somente quando o serviço destino está no mesmo contexto de rede.
- 3 Use nomes de serviço para tráfego entre contêineres no Compose.
- 4 Publique portas quando o navegador do host precisa chegar a um serviço do contêiner.
Verificações rápidas
docker psPara navegador do host, procure mapeamentos como 0.0.0.0:8080->80/tcp e abra a porta do lado host.
docker compose psContêiner para contêiner normalmente usa o nome do serviço Compose, não localhost.
host.docker.internalNo Docker Desktop, esse DNS especial costuma apontar para o host da máquina.
Verificação de request em vivo
O que esta página vê
Headers HTTP da request
Headers sensíveis, como cookies e tokens de autorização, são filtrados antes de aparecer.
O erro mais comum
Um backend dentro do Docker chama localhost e acaba chamando a si mesmo, não o banco de dados ou API esperada.
Desenhe o caminho da request
Navegador para contêiner, contêiner para host e contêiner para contêiner são casos diferentes. O endereço muda conforme o caminho real.
Escolha o endereço pelo destino
Host para contêiner usa porta publicada. Contêiner para serviço Compose usa nome de serviço. Contêiner para host usa alias suportado pela plataforma.
Guias relacionadas de localhost
Localhost recusou a conexão
Resolva localhost recusou a conexão revisando processo, URL, porta, protocolo, firewall e logs locais.
Guia de portalocalhost:8080
Abra localhost:8080 e entenda por que Java, Tomcat, Spring Boot, proxies e painéis locais usam esta porta.
Ferramenta para desenvolvedoresConsulta de portas localhost
Busque portas localhost comuns, entenda para que costumam ser usadas e copie comandos para verificar portas ocupadas.
Guia de redeAbrir localhost pelo celular
Entenda por que localhost no celular aponta para o próprio celular e como abrir um servidor local do computador no iPhone ou Android.
FAQ
Por que o navegador abre a app mas o contêiner não chama localhost?
O navegador está no host. O contêiner está em outro contexto de rede. Localhost significa lugares diferentes.
Devo hardcodear host.docker.internal?
Não. Use configuração por ambiente para Docker local, CI e produção usarem hostnames corretos.
Qual é a forma mais rápida de validar uma explicação de localhost?
Teste host, porta e rota exatos no navegador; depois confira terminal ou logs. URL e processo precisam bater.
Quando usar IP LAN em vez de localhost?
Use IP LAN quando celular, máquina virtual, contêiner ou outro dispositivo precisa chegar a um serviço do seu computador.
Um assistente de código pode sugerir URL localhost errada?
Sim. Tutoriais e assistentes assumem portas padrão. Compare sempre com a URL impressa pelo seu dev server.