En la aplicación del matraz tengo una función que intenta crear un cliente redis
db = redis.Redis(host='localhost', port=6379, decode_responses=True)
Cuando su proceso de matraz se ejecuta en un contenedor, localhost
se refiere a la interfaz de red del propio contenedor. No se resuelve en la interfaz de red de su host docker.
Entonces necesitas reemplazar localhost
con la dirección IP del contenedor que ejecuta redis.
En el contexto de un archivo docker-compose.yml, esto es fácil ya que docker-compose hará que los nombres de los servicios se resuelvan en la dirección IP correcta del contenedor:
version: "3"
services:
my_flask_service:
image: ...
my_redis_service:
image: ...
luego, en la aplicación de tu matraz, usa:
db = redis.Redis(host='my_redis_service', port=6379, decode_responses=True)