Att använda localhost i docker-container är ogiltigt eftersom localhost betyder för container sin egen container så om du kör redis-cli inifrån webbcontainer försöker redis-cli hitta redis i webbcontainer istället för redis container.
Du måste ange redis-tjänstens namn - docker (docker-composes nätverk för att vara mer specifik) kommer att lösa för ditt tjänstnamn till redis container-IP så du bör använda:
redis-cli -h redis ping
förväntad utdata är:
PONG
Redigera:
Det svaret fungerar bara om båda tjänsterna använder samma nätverksläge så det finns två sätt:
- Lägg till network_mode:host till webbtjänsten och sedan kommer "localhost" för redis att fungera bra
- Ta bort network_mode:host från redis och sedan fungerar "redis"-domänen bra