В този случай:
- Pgadmin не успява да се свърже с localhost, но psql работи от външен докер.
- pgadmin и Postgres работят като контейнери
Въпреки че не сте посочили дали го правите, в идеалния случай и двата контейнера могат да бъдат част от персонализиран мост мрежа за автоматично разрешаване на DNS.
Ако не бъдат добавени изрично, те ще бъдат част от мостовата мрежа по подразбиране.
За да разберете мрежите, създадени във вашата докер среда за изпълнение, напишете:$ docker network ls
Някои мрежи ще бъдат изброени в конзолата, може би ще намерите [name]_default
трябва да е вашата мрежа.
Изпълнете 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": ""
}
Вместо да използвате localhost за име/ip на сървъра в диалоговия прозорец за нов сървър на pgAdmin, свържете се с „IPv4Address“ на екземпляра на postgres.
В моя случай се свързва на 172.18.0.2:5432
, работи като чар.