Redis
 sql >> Datenbank >  >> NoSQL >> Redis

docker-compose:Verbindung zwischen Containern abgelehnt, aber Dienst vom Host aus zugänglich

Wenn Sie Ports wie diesen binden '9002:6379' Sie weisen Docker an, Datenverkehr von localhost:9002 weiterzuleiten -> redis:6379 . Deshalb funktioniert das von Ihrem Host-Rechner aus:

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

Wenn Container jedoch miteinander kommunizieren, sind sie alle standardmäßig mit demselben Netzwerk verbunden (die Docker-Bridge oder docker0 ). Standardmäßig können Container frei miteinander kommunizieren in diesem Netzwerk, ohne dass Ports geöffnet werden müssen. Innerhalb dieses Netzwerks wird Ihr redis Container wartet auf Datenverkehr auf seinem üblichen Port (6379 ), Host ist überhaupt nicht beteiligt. Deshalb funktioniert Ihre Container-zu-Container-Kommunikation auf 6379 .