Kiedy powiążesz porty takie jak ten '9002:6379'
każesz Dockerowi przekazywać ruch z localhost:9002
-> redis:6379
. Dlatego działa to z komputera hosta:
redis-cli -h localhost -p 9002 -n 0
Jednak gdy kontenery komunikują się ze sobą, wszystkie są domyślnie połączone z tą samą siecią (mostek Docker lub docker0
). Domyślnie kontenery mogą komunikować się ze sobą swobodnie w tej sieci, bez konieczności otwierania jakichkolwiek portów. W tej sieci Twój redis
kontener nasłuchuje ruchu na swoim zwykłym porcie (6379
), host w ogóle nie jest zaangażowany. Dlatego komunikacja między kontenerami działa na 6379
.