El problema está en tu enlace. Debes configurar lo siguiente:
bind 0.0.0.0
Esto establecerá redis para vincular a todas las interfaces disponibles, en un entorno en contenedores con una interfaz, (eth0 ) y un loopback (lo ) redis se unirá a los dos anteriores. Debe considerar agregar medidas de seguridad a través de otras directivas en config file o usando herramientas externas como firewalls . porque con este enfoque todos pueden conectarse a su redis servidor.
La configuración predeterminada es bind 127.0.0.1 y esta configuración hará que redis para escuchar solo en la interfaz de bucle invertido, y solo se podrá acceder desde dentro del contenedor. (por seguridad)
Para ejecutar redis con un archivo de configuración personalizado:
sudo docker run -d --name redis-test -p 6379:6379 -v /path/to/redisconf/redis.conf:/redis.conf redis redis-server /redis.conf
Ahora para verificar en el host docker con redis-tools instalado:
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>
También puede conectarse a su redis contenedor desde un host externo a través de:
redis-cli -h 'IP-address-of-dockerhost-running-redis-container'