Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Greifen Sie lokal auf Redis auf Docker zu - docker compose

Die Verwendung von localhost im Docker-Container ist ungültig, da localhost für den Container seinen eigenen Container bedeutet. Wenn Sie also redis-cli aus dem Web-Container heraus ausführen, versucht redis-cli, redis im Web-Container statt im redis-Container zu finden.

Sie müssen den Redis-Dienstnamen angeben - Docker (genauer gesagt das Netzwerk von docker-compose) löst Ihren Dienstnamen in die Container-IP von Redis auf, also sollten Sie Folgendes verwenden:

redis-cli -h redis ping

erwartete Ausgabe ist:

PONG

Bearbeiten:

Diese Antwort funktioniert nur, wenn beide Dienste denselben Netzwerkmodus verwenden, also gibt es zwei Möglichkeiten:

  1. Fügen Sie network_mode:host zum Webdienst hinzu und dann "localhost" für redis ist in Ordnung
  2. Entfernen Sie network_mode:host aus redis und dann die "redis"-Domain, das ist in Ordnung