在Docker上运行python网站

我在Docker上创build了一个Python + Flask网站。 如果我做“docker – 组成”的网站是可用的0.0.0.0:5000

我已经标记并将容器推送到docker,我试着从不同的计算机上docker run mydomain/mycontainer 。 它开始下载一切,但最后它显示Status: Downloaded newer image for mydomain/mycontainer:latest没有任何反应。

我试图做docker run mydomain/mycontainer python app.py ,它显示“运行在http://0.0.0.0:5000 ”,但如果我打开该url,我得到“本网站不可用”。 我看不到5000端口上运行的任何进程。

有任何想法吗?

ip 0.0.0.0是docker映像中的本地地址。 如果你想在图像之外访问它(即在你的计算机本地),你必须暴露给定的端口。 这是EXPOSE参数文档 。

如果你运行这个命令:

 docker run -p 5000:5000 mydomain/mycontainer python app.py 

您的服务器将可通过

HTTP://本地主机:5000

顺便说一句,我做了一个公共的(和开源的)Docker镜像,可以用它来构build一个Python Flask web应用程序。

它有用于运行应用程序的uWSGI,Nginx为HTTP和Supervisord提供服务来控制它们,因此您不必学习如何安装和configuration所有这些来构build您的Python Flask Web应用程序。

看起来像Nginx的uWSGI是部署Python Web应用程序的更强大(并且性能卓越)的方式之一。 这里是基准: http : //nichol.as/benchmark-of-python-web-servers 。

甚至有一些模板项目可以用来引导你自己。 此外,您不必克隆整个项目或其他东西,您可以将其用作基本映像。

Docker Hub: https : //hub.docker.com/r/tiangolo/uwsgi-nginx-flask/

GitHub: https : //github.com/tiangolo/uwsgi-nginx-flask-docker