Das Problem liegt bei Ihrer Bindung. Sie sollten Folgendes festlegen:
bind 0.0.0.0
Dadurch wird redis gesetzt zum Binden an alle verfügbaren Schnittstellen in einer containerisierten Umgebung mit einer Schnittstelle (eth0 ) und ein Loopback (lo ) redis bindet an beide oben genannten. Sie sollten erwägen, Sicherheitsmaßnahmen über andere Anweisungen in der config file hinzuzufügen oder mit externen Tools wie firewalls . denn mit diesem Ansatz kann sich jeder mit Ihrem redis verbinden Server.
Die Standardeinstellung ist bind 127.0.0.1 und diese Einstellung bewirkt redis um nur auf der Loopback-Schnittstelle zu lauschen, und es ist nur aus dem Container heraus zugänglich. (aus Sicherheitsgründen)
So führen Sie Redis mit einer benutzerdefinierten Konfigurationsdatei aus:
sudo docker run -d --name redis-test -p 6379:6379 -v /path/to/redisconf/redis.conf:/redis.conf redis redis-server /redis.conf
Jetzt auf dem Docker-Host mit redis-tools überprüfen installiert:
redis-cli
127.0.0.1:6379>
127.0.0.1:6379> set farhad likes:stackoverflow
OK
127.0.0.1:6379> get farhad
"likes:stackoverflow"
127.0.0.1:6379>
Sie können sich auch mit Ihrem redis verbinden Container von einem externen Host über:
redis-cli -h 'IP-address-of-dockerhost-running-redis-container'