本地浏览器如何访问运行在Docker容器中的Flask应用?
Docker部署Flask应用的访问方案
问题根源
你的Flask应用在容器内仅绑定了127.0.0.1:5000,这个地址是容器内部的回环地址,外部主机无法直接访问。同时当前Docker端口映射的是主机8501到容器8501,但Flask实际运行在容器的5000端口,端口不匹配导致无法连通。
解决步骤
1. 修改Flask启动配置
修改app.py最后一行的启动代码,让Flask监听容器的所有网络接口,并统一端口为8501(和Docker暴露的端口一致):
app.run(debug=True, host='0.0.0.0', port=8501)
修改后重新构建镜像:
docker build -t testimage .
2. 运行容器并访问
保持原运行命令不变:
docker run -it -p 8501:8501 testimage
此时在浏览器输入以下地址即可访问:http://localhost:8501(本地主机)或http://你的主机IP地址:8501(远程服务器部署时)
可选方案(不修改Flask端口)
如果不想改动Flask的运行端口,可调整Docker的端口映射规则,将主机8501端口映射到容器的5000端口:
docker run -it -p 8501:5000 testimage
访问地址同样是http://localhost:8501或http://你的主机IP地址:8501
内容的提问来源于stack exchange,提问作者limitIntegral314
相关产品推荐
相关产品推荐

