gpt4 book ai didi

python - docker容器上无法访问flask-restplus微服务

转载 作者:行者123 更新时间:2023-12-02 20:34:17 27 4
gpt4 key购买 nike

这是关于一个带有 echo 端点的简单 flask-restplus 微服务,可以找到 here
默认情况下在端口 5000 上本地运行:

cd $src_folder
python app.py

enter image description here

但是当在一个带有简单 Dockerfile 的 docker 容器中运行时......
RUN pip install --no-cache-dir -r requirements.txt
CMD [ "python", "./app.py" ]

...使用正确的端口映射/公开,由于某种原因无法访问:
    docker run -d -h $HOST --name $CONTAINER \ 
--publish $SERVER_PORT:$CONTAINER_PORT $DOCKER_HUB_IMG:$IMAGE_VERSION

...即使容器日志告诉它已正确启动:
(venv) .../flaskexample$ docker logs flaskexample 
2017-09-17 18:23:12,505 - werkzeug - INFO - * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
2017-09-17 18:23:12,506 - werkzeug - INFO - * Restarting with stat
2017-09-17 18:23:13,016 - werkzeug - WARNING - * Debugger is active!
2017-09-17 18:23:13,021 - werkzeug - INFO - * Debugger PIN: 246-320-471
(venv) .../flaskexample$

...并且在 docker ps 中看起来也不错:
(venv) .../flaskexample$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9d90da7ae192 kakicode/flaskexample:latest "python ./app.py" 4 minutes ago Up 4 minutes 0.0.0.0:5000->5000/tcp flaskexample

..但由于某种原因,我不断得到:

enter image description here

...而且我的想法已经不多了...不得不说我没有在 flask-restplus 配置中提供 SERVER_NAME,因为它没有任何区别,仍然遇到同样的问题,而且每个其他容器都需要端口映射/暴露在我的 docker 守护进程中工作正常。
我在 Ubuntu 14.04.5 中运行这些实验。

...有没有人经历过类似的 flask 休息加?

提前谢谢大家

最佳答案

你的问题是你会在你的 app.py 中使用类似下面的东西

app.run(debug=True, port=5000)

要不就
app.run()

它的作用是监听 127.0.0.1默认情况下。但是要使端口映射起作用,它必须监听容器内的所有接口(interface)。所以你应该使用
app.run(debug=True, port=5000, host="0.0.0.0")

如需进一步引用,请参阅:

http://flask.pocoo.org/docs/0.12/api/?highlight=run#flask.Flask.run

关于python - docker容器上无法访问flask-restplus微服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46267575/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com