Eso es todo acerca de las redes Docker. Solución rápida:use host
modo de red para ambos contenedores. El inconveniente es el bajo aislamiento, pero lo hará funcionar rápidamente:
docker run -d --network=host redis ...
docker run --network=host python-redis-py ...
Luego, para conectarse desde python
a redis
solo usa localhost
como nombre de host.
La mejor solución es usar la red de puente definida por el usuario de Docker
# create network
docker network create foo
docker run -d --network=foo --name my-db redis ...
docker run --network=foo python-redis-py ...
Tenga en cuenta que en este caso no puede usa localhost
pero en su lugar use my-db
como nombre de host. Es por eso que he usado --name my-db
parámetro al iniciar el primer contenedor. En las redes puente definidas por el usuario, los contenedores se comunican entre sí por sus nombres.