This is a simple docker-compose file. It creates 2 running instances of image (containers) from redis and postgres. Exposes port 9379 for redis and port 9432 for postgres on your local machine
I created a network called backend
. You can check ip addr
and see the newly created network. The way it works is that, both
containers will be on same network bridge. Think of it like a VLAN? network
basically does a lot of things behind the scenes, but most importantly it lets you access the other container through the service name defined in docker-compose file. From your redis, if you want to access postgres 5432
port, you can do using db:5432
.
So host
is not localhost
it is db
. db
internally resolves to the private ip of the network interface you saw in ip addr
when you created backend
network. docker
has created an entry in /etc/resolv.conf
which is 127.0.0.11
. It is an internal dns namesever running in your docker daemon, which resolves all the containers' service name to their privat