W takim przypadku:
- Pgadmin nie może połączyć się z hostem lokalnym, ale psql działa z zewnętrznego dockera.
- zarówno pgadmin, jak i Postgres działają jako kontenery
Chociaż nie zaznaczyłeś, czy to robisz, najlepiej byłoby, gdyby oba kontenery były częścią niestandardowego mostu sieć do automatycznego rozwiązywania DNS.
Jeśli nie zostaną dodane wprost, będą częścią domyślnej sieci mostkowej.
Aby znaleźć sieci utworzone w środowisku dockera, wpisz:$ docker network ls
Niektóre sieci zostaną wyświetlone w konsoli, być może znajdziesz [name]_default
powinna to być Twoja sieć.
Wykonajdocker network inspect [name]_default
pokaże się garść informacji, dla nas najważniejszy jest adres IPv4, coś takiego:"7c3cd7532ab8aacc70830afb74adad7296d9c8ddd725c498af2d7ee2d2c2aadd": {
"Name": "intime_postegres_1",
"EndpointID": "56a9cb574469f22259497b72719f9f4a3e555b09f95058fcf389ef5287381f28",
"MacAddress": "02:42:ac:12:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
}
Zamiast używać localhost jako nazwy/IP serwera w oknie dialogowym nowego serwera pgAdmin, połącz się z „IPv4Address” instancji Postgres.
W moim przypadku łączenie na 172.18.0.2:5432
, działał jak urok.