Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Acesse redis localmente no docker - docker compose


Usar localhost no contêiner docker é inválido, pois localhost significa para o contêiner seu próprio contêiner, portanto, se você executar redis-cli de dentro do contêiner da web, redis-cli está tentando encontrar redis no contêiner da web em vez do contêiner redis.

Você precisa especificar o nome do serviço redis - o docker (rede do docker-compose para ser mais específico) resolverá o nome do seu serviço para o IP do contêiner do redis, então você deve usar:
redis-cli -h redis ping

saída esperada é:
PONG

Editar:

Essa resposta só funcionará se ambos os serviços usarem o mesmo modo de rede, portanto, existem 2 maneiras:
  1. Adicione network_mode:host ao serviço da web e, em seguida, "localhost" para redis funcionará
  2. Remova network_mode:host do redis e, em seguida, o domínio "redis" ficará bem