Quando colleghi le porte come questo '9002:6379'
stai dicendo a Docker di inoltrare il traffico da localhost:9002
-> redis:6379
. Ecco perché funziona dal tuo computer host:
redis-cli -h localhost -p 9002 -n 0
Tuttavia, quando i container comunicano tra loro, sono tutti connessi alla stessa rete per impostazione predefinita (il Docker bridge o docker0
). Per impostazione predefinita, i container possono comunicare tra loro liberamente su questa rete, senza che sia necessario aprire alcuna porta. All'interno di questa rete, il tuo redis
il container sta ascoltando il traffico sulla sua porta abituale (6379
), l'host non è affatto coinvolto. Ecco perché la tua comunicazione da contenitore a contenitore funziona su 6379
.