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