烧瓶在容器内工作,但是当我将其转发时不

时间:2018-10-02 08:41:48

标签: python docker flask

我正在尝试的是:我正在尝试使用docker运行一个简单的flask应用程序。以this网站为参考。

我的dockerfile:

FROM ubuntu:latest
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev build-essential
COPY ./app /app
WORKDIR /app
RUN pip install -r "requirements.txt"
ENTRYPOINT ["python"]
CMD ["app.py"]

Python文件:

from flask import Flask
app = Flask(__name__)

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

if __name__ == '__main__':
    app.run(port=5000, debug=True)

requirements.txt:

Flask==1.0.2

我在做什么:

  • 使用docker build -t simple-flask2 .
  • 构建图像
  • 然后,使用docker run -p 5000:5000 simple-flask2
  • 启动容器
  • 当我去localhost:5000时,什么也没出现。
  • 因此,我使用docker exec -it 3be bash打开了容器的终端,然后执行了curl localhost:5000。令我惊讶的是,它正在容器内工作

谁能指出我想念的东西吗?我对此很陌生。 TIA:)

2 个答案:

答案 0 :(得分:5)

我猜它仅在容器中的localhost(默认值host='127.0.0.1')上运行。尝试使用所有接口(host='0.0.0.0'):

if __name__ == '__main__':
    app.run(port=5000, debug=True, host='0.0.0.0')

答案 1 :(得分:3)

尝试使用以下方法在每个界面上收听:

app.run(host='0.0.0.0', port=5000, debug=True)