PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Nie można połączyć się z serwerem Postgres w dockerze z zadokowanej aplikacji

Wystarczy skorzystać ze zdefiniowanej przez użytkownika sieci mostkowej. Najpierw wykorzystaj swoją wiedzę, czytając krótkie wyjaśnienie różnych typów sieci w Docker:https://docs.docker.com/network/bridge/

Po drugie, zdefiniuj własną sieć

docker network create foo

Następnie uruchom kontenery połączone do tej sieci:

docker run --rm --env-file /path/to/variables -d --network foo django_app:test
docker run --rm -d ... --network foo postgres:alpine ...

Zauważ w obu poleceniach --network foo . Również nie potrzebujesz aby odsłonić porty w tym przypadku - w sieciach zdefiniowanych przez użytkownika odbywa się to automatycznie:

Kontenery podłączone do tej samej zdefiniowanej przez użytkownika sieci mostowej automatycznie udostępniają wszystkie porty sobie nawzajem, a żadnych portów światu zewnętrznemu. Pozwala to aplikacjom znajdującym się w kontenerach na łatwą komunikację między sobą, bez przypadkowego otwierania dostępu do świata zewnętrznego.

Po trzecie, nadaj swoim kontenerom nazwy hostów czytelne dla człowieka za pomocą --name bar

docker run ... --network foo --name my-django django_app:test ...
docker run ... --network foo --name my-postgres postgres:alpine ...

I na koniec popraw parametry połączenia - zmień z localhost do nazwy kontenera, np. my-postgres :

...
POSTGRES_HOST=my-postgres
...


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa Random() w PostgreSQL

  2. Jak tworzyć i usuwać bazy danych i tabele w PostgreSQL

  3. Jak wyświetlić listę wszystkich widoków w bazie danych PostgreSQL

  4. pg_restore Alternatywy - Kopia zapasowa PostgreSQL i automatyczne odzyskiwanie za pomocą ClusterControl

  5. Korzystanie z funkcji okna w instrukcji aktualizacji