Saat Anda mengikat port seperti ini '9002:6379'
Anda memberi tahu Docker untuk meneruskan lalu lintas dari localhost:9002
-> redis:6379
. Itu sebabnya ini bekerja dari mesin host Anda:
redis-cli -h localhost -p 9002 -n 0
Namun, ketika kontainer berbicara satu sama lain, mereka semua terhubung ke jaringan yang sama secara default (jembatan Docker atau docker0
). Secara default, container dapat berkomunikasi satu sama lain dengan bebas di jaringan ini, tanpa perlu membuka port apa pun. Dalam jaringan ini, redis
. Anda container mendengarkan lalu lintas pada port biasanya (6379
), tuan rumah tidak terlibat sama sekali. Itulah mengapa komunikasi container ke container Anda berfungsi di 6379
.