sql >> Base de Datos >  >> NoSQL >> Redis

Acceda a redis localmente en docker - docker compose

El uso de localhost en el contenedor docker no es válido, ya que localhost significa que el contenedor es su propio contenedor, por lo que si ejecuta redis-cli desde el contenedor web, redis-cli está tratando de encontrar redis en el contenedor web en lugar del contenedor redis.

Debe especificar el nombre del servicio de redis:docker (la red de docker-compose para ser más específicos) resolverá el nombre de su servicio en la IP del contenedor de redis, por lo que debe usar:

redis-cli -h redis ping

el resultado esperado es:

PONG

Editar:

Esa respuesta solo funcionará si ambos servicios usan el mismo modo de red, por lo que hay 2 formas:

  1. Agregar network_mode:host al servicio web y luego "localhost" para redis estará bien
  2. Elimine network_mode:host de redis y luego el dominio "redis" estará bien