我在一个烧瓶服务器上运行一个小型Web应用程序,通常可以通过运行app.py在本地主机上运行。我想在docker容器中运行它,所以我不能使用localhost。另一种方法是使用0.0.0.0
,它可以正常工作,但是当我在我的工作代理上时这不起作用。
我怎么能解决这个问题?
app.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def main():
return render_template('index.html')
if __name__ == "__main__":
app.run(host='0.0.0.0')
Dockerfile
FROM python:2.7.13
ADD . /code
WORKDIR /code
RUN pip install Flask --proxy=[proxy]
CMD ["python", "app.py"]
答案 0 :(得分:1)
您不需要在容器内使用代理。无论需要什么,都将在容器/图像的外部。无论您是在企业环境中还是在家中运行。
使用docker run -p 5000:5000 <yourimage>
时。它将端口5000从容器内部映射到计算机上的所有接口。
现在,如果您可以从网络中的其他计算机访问计算机,那么他们需要使用http://<yourreachablemachineip>:5000
。此外,如果由于某种原因需要代理,那么您将需要将该代理应用于docker守护程序而不是Docker容器内。有关相同的