Když svážete porty jako tento '9002:6379'
říkáte Dockeru, aby přesměroval provoz z localhost:9002
-> redis:6379
. To je důvod, proč to funguje z vašeho hostitelského počítače:
redis-cli -h localhost -p 9002 -n 0
Když však kontejnery spolu mluví, jsou všechny ve výchozím nastavení připojeny ke stejné síti (most Docker nebo docker0
). Ve výchozím nastavení mohou kontejnery mezi sebou komunikovat volně v této síti, aniž by bylo potřeba otevřít nějaké porty. V rámci této sítě se vaše redis
kontejner naslouchá provozu na svém obvyklém portu (6379
), hostitel není vůbec zapojen. Proto vaše komunikace mezi kontejnery funguje na 6379
.