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

docker-compose:conexão recusada entre contêineres, mas serviço acessível do host


Quando você vincula portas como esta '9002:6379' você está dizendo ao Docker para encaminhar o tráfego de localhost:9002 -> redis:6379 . É por isso que isso funciona em sua máquina host:
redis-cli -h localhost -p 9002 -n 0

No entanto, quando os contêineres conversam entre si, eles estão todos conectados à mesma rede por padrão (a ponte Docker ou docker0 ). Por padrão, os contêineres podem se comunicar livremente nesta rede, sem precisar abrir nenhuma porta. Dentro desta rede, seu redis container está escutando o tráfego em sua porta usual (6379 ), o host não está envolvido. É por isso que sua comunicação de contêiner para contêiner funciona em 6379 .