sql >> Databáze >  >> RDS >> PostgreSQL

Nelze se připojit k postgresovému serveru v dockeru z dockerizované aplikace

Stačí využít uživatelsky definované mostové sítě. Nejprve využijte své znalosti přečtením krátkého vysvětlení různých typů sítí v Dockeru:https://docs.docker.com/network/bridge/

Za druhé, definujte svou vlastní síť

docker network create foo

Dále spusťte kontejnery připojené do této sítě:

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

Upozornění v obou příkazech --network foo . Také nepotřebujete k odhalení portů v tomto případě - uvnitř uživatelsky definovaných sítí se to děje automaticky:

Kontejnery připojené ke stejné uživatelsky definované přemosťovací síti automaticky vystaví všechny porty sobě navzájem a žádné porty vnějšímu světu. To umožňuje kontejnerizovaným aplikacím snadno mezi sebou komunikovat, aniž by se náhodně otevřel přístup do vnějšího světa.

Za třetí, dejte svým kontejnerům čitelné názvy hostitelů pomocí --name bar

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

A nakonec opravte připojovací řetězec - změňte z localhost na název kontejneru, například my-postgres :

...
POSTGRES_HOST=my-postgres
...


  1. Spojte uzly XMLType v dotazu Oracle

  2. 2 způsoby, jak získat znakové sady dostupné v MariaDB

  3. Jak rychle upravit hodnoty v tabulce v SQL Server Management Studio?

  4. Použití výrazů CASE na serveru SQL