Redis
 sql >> Base de données >  >> NoSQL >> Redis

docker-compose :connexion refusée entre les conteneurs, mais service accessible depuis l'hôte

Lorsque vous liez des ports comme celui-ci '9002:6379' vous dites à Docker de transférer le trafic de localhost:9002 -> redis:6379 . C'est pourquoi cela fonctionne depuis votre ordinateur hôte :

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

Cependant, lorsque les conteneurs se parlent, ils sont tous connectés au même réseau par défaut (le pont Docker ou docker0 ). Par défaut, les conteneurs peuvent communiquer entre eux librement sur ce réseau, sans avoir besoin d'ouvrir de ports. Au sein de ce réseau, votre redis le conteneur écoute le trafic sur son port habituel (6379 ), l'hôte n'est pas du tout impliqué. C'est pourquoi votre communication de conteneur à conteneur fonctionne sur 6379 .