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'