Questo è tutto sul networking Docker. Soluzione rapida:usa host
modalità di rete per entrambi i contenitori. Lo svantaggio è un basso isolamento, ma lo farai funzionare velocemente:
docker run -d --network=host redis ...
docker run --network=host python-redis-py ...
Quindi per connetterti da python
a redis
usa semplicemente localhost
come nome host.
La soluzione migliore consiste nell'utilizzare la rete bridge definita dall'utente Docker
# create network
docker network create foo
docker run -d --network=foo --name my-db redis ...
docker run --network=foo python-redis-py ...
Tieni presente che in questo caso non puoi usa localhost
ma invece usa my-db
come nome host. Ecco perché ho usato --name my-db
parametro all'avvio del primo contenitore. Nelle reti bridge definite dall'utente, i container si raggiungono tramite i loro nomi.