Docker - 在代理上运行Flask Web应用程序
问题描述:
我有一个小型的Web应用程序,通过运行app.py可以在通常在本地主机上运行的服务器上运行。我想在Docker容器中运行它,所以我不能使用localhost。另一种方法是使用0.0.0.0
,它可以正常工作,但是当我在我的工作代理上时,这不起作用。Docker - 在代理上运行Flask Web应用程序
我怎么能通过这个问题?
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"]
答
你并不需要使用容器内的代理。无论需要什么,都将是容器/图像的外部。无论您是在企业环境还是家中运行。
当您使用docker run -p 5000:5000 <yourimage>
。它将端口5000从容器内映射到机器上的所有接口。
现在,如果您的机器可以从网络中的其他机器到达,那么他们需要使用http://<yourreachablemachineip>:5000
。此外,如果由于某种原因需要代理,那么您将需要将该代理应用于docker守护程序,而不是在docker容器内部。请参阅下面的线程,详细了解同
要在本地跑的?使用代理?你的Dockerfiles/docker-compose文件是什么样子的? –
我稍后会将它添加到kubernetes群集,因此我希望它能够在群集上运行。 kubernetes节点有自己的外部IP地址,我希望能够通过浏览器访问它。还添加了dockerfile :) – monadoboi