Redis
 sql >> Database >  >> NoSQL >> Redis

Accedi a redis localmente su docker - docker compose

L'uso di localhost nel contenitore docker non è valido poiché localhost significa per contenitore il proprio contenitore, quindi se esegui redis-cli dall'interno del contenitore Web, redis-cli sta cercando di trovare redis nel contenitore Web anziché nel contenitore Redis.

È necessario specificare il nome del servizio redis:docker (la rete di docker-compose per essere più specifici) risolverà il nome del servizio nell'IP del contenitore di redis, quindi dovresti usare:

redis-cli -h redis ping

l'output previsto è:

PONG

Modifica:

Questa risposta funzionerà solo se entrambi i servizi utilizzano la stessa modalità di rete, quindi ci sono 2 modi:

  1. Aggiungi network_mode:host al servizio web e poi "localhost" per redis andrà bene
  2. Rimuovi network_mode:host da redis e poi il dominio "redis" andrà bene