Das ist alles über Docker-Netzwerke. Schnelle Lösung - verwenden Sie host Netzwerkmodus für beide Container. Nachteil ist die geringe Isolation, aber Sie werden es schnell zum Laufen bringen:
docker run -d --network=host redis ...
docker run --network=host python-redis-py ...
Verbinden Sie sich dann von python zu redis Verwenden Sie einfach localhost als Hostname.
Eine bessere Lösung ist die Verwendung des benutzerdefinierten Bridge-Netzwerks von Docker
# create network
docker network create foo
docker run -d --network=foo --name my-db redis ...
docker run --network=foo python-redis-py ...
Beachten Sie, dass Sie in diesem Fall nicht können Verwenden Sie localhost sondern verwenden Sie stattdessen my-db als Hostname. Deshalb habe ich --name my-db verwendet Parameter beim Starten des ersten Containers. In benutzerdefinierten Bridge-Netzwerken erreichen sich Container über ihren Namen.