Isso é tudo sobre a rede do Docker. Solução rápida - use
host modo de rede para ambos os contêineres. A desvantagem é o baixo isolamento, mas você fará com que funcione rapidamente:docker run -d --network=host redis ...
docker run --network=host python-redis-py ...
Em seguida, para conectar de
python para redis basta usar localhost como um nome de host. A melhor solução é usar a rede de ponte definida pelo usuário do docker
# create network
docker network create foo
docker run -d --network=foo --name my-db redis ...
docker run --network=foo python-redis-py ...
Observe que, neste caso, você não pode use
localhost mas em vez disso use my-db como um nome de host. É por isso que usei --name my-db parâmetro ao iniciar o primeiro contêiner. Em redes de ponte definidas pelo usuário, os contêineres alcançam uns aos outros por seus nomes.