Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Conectando-se ao Redis em execução no Docker Container da máquina Host


O problema está no seu bind, você deve definir o seguinte:
bind 0.0.0.0

Isso definirá redis para vincular a todas as interfaces disponíveis, em um ambiente conteinerizado com uma interface, (eth0 ) e um loopback (lo ) redis será vinculado a ambos os itens acima. Você deve considerar adicionar medidas de segurança por meio de outras diretivas no config file ou usando ferramentas externas como firewalls . porque com essa abordagem todos podem se conectar ao seu redis servidor.

A configuração padrão é bind 127.0.0.1 e esta configuração fará com que redis para ouvir apenas na interface de loopback, e só será acessível de dentro do contêiner. (para segurança)

Para executar o redis com o arquivo de configuração personalizado:
sudo docker run -d --name redis-test -p 6379:6379  -v /path/to/redisconf/redis.conf:/redis.conf redis redis-server /redis.conf

Agora, para verificar no host do docker com 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> 

Você também pode se conectar ao seu redis container de um host externo via:
redis-cli -h 'IP-address-of-dockerhost-running-redis-container'