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 .