Redis
 sql >> Base de données >  >> NoSQL >> Redis

Connexion à Redis exécuté dans Docker Container à partir de la machine hôte

Le problème vient de votre liaison, vous devez définir les éléments suivants :

bind 0.0.0.0

Cela définira redis pour se lier à toutes les interfaces disponibles, dans un environnement conteneurisé avec une seule interface, (eth0 ) et un bouclage (lo ) redis se liera aux deux éléments ci-dessus. Vous devriez envisager d'ajouter des mesures de sécurité via d'autres directives dans le config file ou en utilisant des outils externes comme des firewalls . car avec cette approche tout le monde peut se connecter à votre redis serveur.

Le paramètre par défaut est bind 127.0.0.1 et ce paramètre entraînera redis pour écouter uniquement sur l'interface de bouclage, et il ne sera accessible que depuis l'intérieur du conteneur. (pour la sécurité)

Pour exécuter Redis avec un fichier de configuration personnalisé :

sudo docker run -d --name redis-test -p 6379:6379  -v /path/to/redisconf/redis.conf:/redis.conf redis redis-server /redis.conf

Maintenant, pour vérifier sur l'hôte docker avec redis-tools installé :

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> 

Vous pouvez également vous connecter à votre redis conteneur depuis un hôte externe via :

redis-cli -h 'IP-address-of-dockerhost-running-redis-container'