2017-09-04 59 views
0

我有一个小型的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"] 
+0

要在本地跑的?使用代理?你的Dockerfiles/docker-compose文件是什么样子的? –

+0

我稍后会将它添加到kubernetes群集,因此我希望它能够在群集上运行。 kubernetes节点有自己的外部IP地址,我希望能够通过浏览器访问它。还添加了dockerfile :) – monadoboi

回答

0

你并不需要使用容器内的代理。无论需要什么,都将是容器/图像的外部。无论您是在企业环境还是家中运行。

当您使用docker run -p 5000:5000 <yourimage>。它将端口5000从容器内映射到机器上的所有接口。

现在,如果您的机器可以从网络中的其他机器到达,那么他们需要使用http://<yourreachablemachineip>:5000。此外,如果由于某种原因需要代理,那么您将需要将该代理应用于docker守护程序,而不是在docker容器内部。请参阅下面的线程,详细了解同

lookup registry-1.docker.io: no such host

相关问题