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

Herstellen einer Verbindung mit Redis, das im Docker-Container vom Host-Computer ausgeführt wird

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'