sql >> Base de Datos >  >> NoSQL >> Redis

docker-compose:conexión rechazada entre contenedores, pero servicio accesible desde el host

Cuando vinculas puertos como este '9002:6379' le estás diciendo a Docker que reenvíe el tráfico desde localhost:9002 -> redis:6379 . Es por eso que esto funciona desde su máquina host:

redis-cli -h localhost -p 9002 -n 0

Sin embargo, cuando los contenedores se comunican entre sí, todos están conectados a la misma red de forma predeterminada (el puente Docker o docker0 ). De forma predeterminada, los contenedores pueden comunicarse entre sí libremente en esta red, sin necesidad de abrir ningún puerto. Dentro de esta red, su redis el contenedor está escuchando el tráfico en su puerto habitual (6379 ), el host no está involucrado en absoluto. Es por eso que su comunicación de contenedor a contenedor funciona en 6379 .