127.0.0.1 0.0.0.0 | Docker-Compose
127.0.0.1 0.0.0.0| Docker-Compose

A diferença é em qual interface de rede do host a porta publicada vai escutar.
Exemplo no docker-compose.yml:
ports:
- "127.0.0.1:8080:80"
ou
ports:
- "0.0.0.0:8080:80"
127.0.0.1
Significa que a porta fica disponível somente no próprio host.
Exemplo:
ports:
- "127.0.0.1:8080:80"
Aqui o container expõe a porta 80, mas o Docker publica no host na porta 8080 apenas no loopback.
Na prática:
- funciona com
curl http://localhost:8080no servidor - funciona com
curl http://127.0.0.1:8080no servidor - não funciona de outra máquina da rede acessando
http://IP_DO_SERVIDOR:8080
Uso comum:
- reverse proxy local
- banco que só a própria máquina deve acessar
- servi ços internos
- mais segurança por não expor na rede
0.0.0.0
Significa que a porta fica disponível em todas as interfaces de rede do host.
Exemplo:
ports:
- "0.0.0.0:8080:80"
Na prática:
- funciona via
localhost:8080 - funciona via
127.0.0.1:8080 - funciona via
IP_DO_SERVIDOR:8080 - funciona por qualquer interface de rede do host que aceite conexão
Uso comum:
- API/web app que precisa ser acessada por outra máquina
- ambiente de desenvolvimento para acessar do celular/outro PC
- exposição pública ou interna na rede
Resumindo direto
127.0.0.1= só acessível dentro do host0.0.0.0= acessível por qualquer IP/interface do host
Exemplo prático
Se seu servidor tem IP 192.168.1.10:
Com 127.0.0.1
ports:
- "127.0.0.1:5000:5000"
http://localhost:5000no servidor: funcionahttp://192.168.1.10:5000de outro PC: não funciona
Com 0.0.0.0
ports:
- "0.0.0.0:5000:5000"
http://localhost:5000: funcionahttp://192.168.1.10:5000: funciona também
Observação importante
Quando você escreve só isso:
ports:
- "5000:5000"
na prática o Docker publica como 0.0.0.0 por padrão na maioria dos casos.
Ou seja, sem informar IP, geralmente está expondo para todas as interfaces.
Quando usar cada um
Use 127.0.0.1 quando:
- o serviço não deve ficar visível na rede
- ele será consumido por Nginx, APISIX, Traefik ou outro proxy na mesma máquina
- quer reduzir exposição
Use 0.0.0.0 quando:
- outras máquinas precisam acessar
- quer expor a aplicação para a rede
- está publicando de fato o serviço