I dette tilfælde:
- Pgadmin kan ikke oprette forbindelse til localhost, men psql fungerer fra en ekstern docker.
- både pgadmin og Postgres kører som containere
Selvom du ikke har angivet, om du gør det, kunne begge containere ideelt set være en del af en tilpasset bro netværk til automatisk DNS-opløsning.
Hvis de ikke tilføjes eksplicit, vil de være en del af standardbro-netværket.
For at finde ud af de netværk, der er oprettet i din docker-runtime, skal du skrive:$ docker network ls
Nogle netværk vil blive vist i konsollen, måske finder du en [name]_default
det skal være dit netværk.
Udførdocker 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": ""
}
I stedet for at bruge localhost til servernavnet/ip i dialogboksen pgAdmin new server, skal du oprette forbindelse til postgres-instansens "IPv4Address".
I mit tilfælde forbinder jeg på 172.18.0.2:5432
, fungerede som en charme.