加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在Docker容器中运行Python Flask

发布时间:2020-12-16 03:41:26 所属栏目:安全 来源:网络整理
导读:参见英文答案 Deploying a minimal flask app in docker server connection issues????????????????????????????????????3个 我正在尝试在docker容器中运行Python Flask Web服务器,但我无法从外部连接到Flask服务器. 我做了什么: 我创建了/temp/HelloFlask.

参见英文答案 > Deploying a minimal flask app in docker – server connection issues????????????????????????????????????3个
我正在尝试在docker容器中运行Python Flask Web服务器,但我无法从外部连接到Flask服务器.

我做了什么:

我创建了/temp/HelloFlask.py

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

我启动了docker容器,容器端口5000映射到主机端口5000,并且?/ temp安装到/ temp

docker run -it -p 5000:5000 -v ~/temp:/temp --name tf gcr.io/tensorflow/tensorflow:latest-devel

在正在运行的docker容器中,我安装了Flask并运行了HelloFlask.py

cd /temp
pip install Flask
python HelloFlask.py &

我验证了服务器在容器中是可访问的

[root@de8b6996b540:/temp# curl localhost:5000
127.0.0.1 - - [22/Sep/2016 17:41:48] "GET / HTTP/1.1" 200 -
Hello World!

我正在使用Docker版本1.12.1(版本:12133),它暴露了localhost上的容器端口,所以我应该能够在我的Mac上访问容器外的localhost:5000,但我无法连接.

我测试通过运行如docker for mac quickstart中所述的nginx容器来确保Docker正确地将容器端口绑定到localhost,并且我可以通过localhost从容器访问端口就好了.

最佳答案
试试app.run(host =’0.0.0.0′).

默认情况下,只能从localhost访问Flask服务器.在您的情况下,容器是localhost,您的请求来自容器外部. host =’0.0.0.0’参数使服务器可以从外部IP访问.它在Flask documentation中有详细描述.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读