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'