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.