I have two containers, the first one with a django
and the second one with postgresql
.
Well, in my first server I have running django
and I'm trying to connect it with the second one.
The second container has the port 32770
exposed but internally running in the port 5432
.
In my local machine, I have the connection:
Server: 'Localhost'
Port: 32770
User: 'myuser'
Password: ''
And it's connecting, but with my django
container, I'm getting this error:
could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 32770?
The same happens for the port 5432
How I can connect both servers?
Since your are running the containers individually you have different options
Run django on network of postgres container
$ docker run -d ... postgres
<container id>
$ docker run -d ... --net container:<containerid> django
Then django can find postgres on localhost:5432
Run django and postgres as named containers container
$ docker run --name postgresdb -d ... postgres
<container id>
$ docker run -d ... django
Now django can find db on postgresdb:5432
Run both containers on host
$ docker run --net host -d ... postgres
<container id>
$ docker run -d ... --net host django
Then django can find postgres on localhost:5432
Run containers on same network
$ docker network create mynet
$ docker run --name postgresdb --net mynet -d ... postgres
<container id>
$ docker run --net mynet -d ... django
Now django can find db on postgresdb:5432
Connect to the host IP and mapped port
$ docker run -d -p 32770:5432 .... postgres
$ docker run -d .... django
Django can now connect to the DB on <yourdockerhostip>:32770
.
Better option is to run it using docker-compose
. Learn more on https://docs.docker.com/compose/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With