Полагаю, у вас возникли некоторые недопонимания для сети докеров.
В Docker используется veth pair
в качестве технологии моста по умолчанию для связи между хостом и контейнером, см. Следующую диаграмму:
![https://img-blog.csdn.net/20180820162528508?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hid19saW51eDEyMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70](https://i.stack.imgur.com/IoFjk.png)
Итак, 172.17.0.1
- это просто мост между сетевой картой вашего хоста и сетевой картой контейнеров, вы не можете использовать ее напрямую.Между тем, вы не должны использовать ip контейнера из браузера вашего хоста, чтобы посетить его, так как он находится в частной сети, которую настраивает docker, и вы можете использовать -p
, чтобы опубликовать вашу внутреннюю сетевую службу для внешней.
И когда вы посещаете localhost
, на самом деле это просто посещение сети хоста, и докер использует iptables для передачи сетевого трафика на порт контейнера через мост docker0
.Итак, для вашего случая, если вы не хотите использовать localhost
, вы можете использовать вместо него ip хоста, то есть 192.168.65.3
в вашем случае.