【问题标题】:Can't access my simple flask app running in docker [duplicate]无法访问我在 docker 中运行的简单烧瓶应用程序 [重复]
【发布时间】:2021-08-10 17:09:18
【问题描述】:

应用程序运行,但当我尝试转到链接 @http://172.17.0.2:5000/ 时,它超时。

相关代码:

app = Flask(__name__)
@app.route('/')
def index():
    return "hullo"

我也尝试过使用和不使用下面的代码,这是其他 stackoverflow 对类似于我的问题的回答所建议的,但它不起作用:

 if __name__ == '__main__':
   app.run(host ='0.0.0.0')

Dockerfile:

FROM python:3.9.6-slim-buster
WORKDIR /project
RUN python -m pip install --upgrade pip
RUN pip install -U Flask Flask-WTF Flask-SQLAlchemy DateTime python-dotenv mysql-connector-python
COPY . .
CMD [ "python3", "-m" , "flask", "run", "--host", "0.0.0.0"]

运行命令:

docker run --publish 5000:5000 testbon5

这实际上是从官方文档教程中复制和粘贴的。是不是我做错了什么?

【问题讨论】:

  • 你试过127.0.0.1吗?
  • 我对网络不是很熟练,所以我不知道为什么会这样,但我试过了,但没有。 Flask 仍会启动,但在访问 url 时会得到一个空响应。谢谢你的想法。
  • 您使用的是什么操作系统?我可以复制和粘贴您的代码并从我的浏览器访问它。
  • docker slack 上的某个人帮助了我。我在下面发布了答案。感谢您的尝试!

标签: python docker flask networking


【解决方案1】:

想通了。来自一个非常好的人。

我需要在地址栏中输入“localhost:/5000”。这让我很困惑,因为我总是通过烧瓶日志访问我正在处理的网站,在这种情况下是:

 * Serving Flask app 'project/app.py' (lazy loading)
 * Environment: development
 * Debug mode: on
 * Running on all addresses.
   WARNING: This is a development server. Do not use it in a production deployment.
 * Running on http://172.17.0.2:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!

我猜因为它在容器中运行,所以地址不再起作用。希望这可以帮助其他人在学习 docker 时像我一样经历成长的痛苦。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-21
    • 2017-10-18
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多