Det handlar om Docker-nätverk. Snabb lösning - använd host
nätverksläge för båda behållarna. Nackdelen är låg isolering, men du kommer att få det att fungera snabbt:
docker run -d --network=host redis ...
docker run --network=host python-redis-py ...
Sedan för att ansluta från python
till redis
använd bara localhost
som ett värdnamn.
Bättre lösning är att använda docker användardefinierade bryggnätverk
# create network
docker network create foo
docker run -d --network=foo --name my-db redis ...
docker run --network=foo python-redis-py ...
Observera att du i det här fallet inte kan använd localhost
men använd istället my-db
som ett värdnamn. Det är därför jag har använt --name my-db
parameter när den första behållaren startas. I användardefinierade bryggnätverk når containrar varandra med sina namn.