quarta-feira, 21 de janeiro de 2026

Docker - Acessando outra aplicação localmente no mesmo host

INTRODUÇÃO 

Ao usar o docker para criar containers para a sua solução, pode haver a necessidade de uma aplicação A dentro de um container A acessar outra aplicação B em outro container B ou no próprio host hospedeiro. Se chamar pela URL localhost:X (onde X é a porta), a sua aplicação A que está dentro do container A, procurará por esse serviço no próprio container A e que não existirá! Pois não tem nenhuma aplicação registrada na porta X no container A. Pois essa aplicação estará no container B!


EXEMPLO

Container A

Aplicação: Web (Pode ser uma aplicação frontend React/Vue/Angular)

Porta: 3000


Container B

Aplicação: Banco de dados PostgreSQL

Porta: 5432


Observação:

Nesse exemplo, estamos simplificando a comunicação para explicar os conceitos desse artigo. Logicamente numa aplicação real, teremos mais containers e camadas de aplicações, como por exemplo o frontend num container X chamando o backend no container Y e depois chamando o banco de dados num container Z.


OBJETIVO

A aplicação Web A acessar o banco de dados no container B.


PROBLEMA

A aplicação Web A deseja acessar o banco de dados que está em outro container, mas se acessar chamando a URL localhost e na porta 5432, dará erros, de conexão recusada, pois no container A não possui nenhuma aplicação registrada na porta 5432.


SOLUÇÃO

Usar a URL: host.docker.internal nas suas configurações locais para o docker entender que é para buscar fora do próprio container que está efetuando a chamada. No exemplo acima, usariamos a URL com porta, como host.docker.internal:5432.



Nenhum comentário:

Postar um comentário