127.0.0.1是本地回环地址,也就是代表本机,其他的IP无法访问到这个地址的,所以如果使用这个地址绑定flask或者其他的http项目,需要使用nginx代理或者其他代理工具代理到本地后才能被访问。
0.0.0.0是通配符地址,当你把程序绑定这个地址后,会监听全部的端口,类似的有网络里面的0.0.0.0/0,也是表示全部的地址,所以,当把程序绑定0.0.0.0地址监听的时候,所有能访问该计算机的地址,都能访问这个接口。
如果在docker容器里面里面使用127.0.0.0启动的http项目,那么宿主机是无法访问的,需要改为0.0.0.0绑定,宿主机的网络才能访问。
这里未进行详细测试,只是自己的感觉,之后进行相应的测试后再补充结果
备注:
localhost 是一个域名,在hosts文件里面,指向了127.0.0.1,也就是说在绑定的时候,是可以直接绑定域名的,本地的hosts文件是否类似于DNS服务器的功能呢?
参考文章:
https://blog.csdn.net/shengchaohua163/article/details/130312011