在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