PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Impossibile connettersi al server Postgres in una finestra mobile da un'app in modalità Docker

Basta utilizzare la rete bridge definita dall'utente. Innanzitutto, sfrutta le tue conoscenze leggendo una breve spiegazione dei diversi tipi di reti in Docker:https://docs.docker.com/network/bridge/

In secondo luogo, definisci la tua rete

docker network create foo

Quindi, esegui i tuoi container connected a questa rete:

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

Nota in entrambi i comandi --network foo . Inoltre non ti serve per esporre le porte in questo caso - all'interno di reti definite dall'utente viene eseguito automaticamente:

I container collegati alla stessa rete bridge definita dall'utente espongono automaticamente tutte le porte l'una all'altra e nessuna porta al mondo esterno. Ciò consente alle applicazioni containerizzate di comunicare tra loro facilmente, senza aprire accidentalmente l'accesso al mondo esterno.

Terzo, dai ai tuoi contenitori nomi host leggibili dall'uomo con --name bar

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

E infine correggi la stringa di connessione:cambia da localhost al nome del contenitore, come my-postgres :

...
POSTGRES_HOST=my-postgres
...