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.