Použití localhost v kontejneru docker je neplatné, protože localhost znamená pro kontejner jeho vlastní kontejner, takže pokud spustíte redis-cli z webového kontejneru, redis-cli se snaží najít redis ve webovém kontejneru namísto kontejneru redis.
Musíte zadat název služby redis - docker (přesnější síť docker-compose) přeloží název služby na IP kontejneru redis, takže byste měli použít:
redis-cli -h redis ping
očekávaný výstup je:
PONG
Upravit:
Tato odpověď bude fungovat pouze v případě, že obě služby používají stejný síťový režim, takže existují 2 způsoby:
- Přidat network_mode:host do webové služby a pak "localhost" pro redis bude v pořádku
- Odeberte network_mode:host z redis a poté bude doména "redis" v pořádku