原因1:flask的启动时的host指定错误
分析:
如果设置为127.0.0.1
或者localhost
,容器环境外将无法访问。因为127.0.0.1
和localhost
都是环回地址,也就是只能指代本身,无法提供本机环境之外访问,并且localhost
只是 127.0.0.1
的别名。
而当服务器被告知要监听时0.0.0.0
,意味着“监听每个可用的网络接口”,当然最后会被替换flask
成本机真实的IP地址,例如:171.0.0.2
,并且flask
将会同时监听:http://120.0.0.1:port
,也就是说最终flask启动的服务将同时提供本机访问和外部访问。
解决:将host
改为0.0.0.0
即可。
原因2:docker创建容器时 端口绑定 不正确
分析:
docker run -p local-port:container-port
绑定不正确,将无法提供访问。
解决:
重新创建容器,确保local-port:container-port
正确。