Nesse caso:
- Pgadmin falha ao se conectar ao localhost, mas o psql funciona de fora do docker.
- tanto o pgadmin quanto o Postgres estão sendo executados como contêineres
Embora você não tenha indicado se está fazendo isso, o ideal é que ambos os contêineres façam parte de uma bridge personalizada rede para resolução automática de DNS.
Se não forem adicionados explicitamente, eles farão parte da rede de ponte padrão.
Para descobrir as redes criadas no tempo de execução do docker, digite:$
docker network ls
Algumas redes serão listadas no console, talvez você encontre um
[name]_default
deve ser sua rede. Execute
docker network inspect [name]_default
it'll show up a bunch of information, for us the most important is IPv4Address, something like this:"7c3cd7532ab8aacc70830afb74adad7296d9c8ddd725c498af2d7ee2d2c2aadd": {
"Name": "intime_postegres_1",
"EndpointID": "56a9cb574469f22259497b72719f9f4a3e555b09f95058fcf389ef5287381f28",
"MacAddress": "02:42:ac:12:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
}
Em vez de usar localhost para o nome/ip do servidor na caixa de diálogo do novo servidor do pgAdmin, conecte-se ao "IPv4Address" da instância do postgres.
No meu caso conectando em
172.18.0.2:5432
, funcionou como um encanto.