在docker上运行python网站

时间:2015-10-01 23:56:48

标签: python flask docker

我在docker上创建了一个Python + Flask网站。如果我执行“docker-compose up”,则可以在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上运行”但如果我打开该网址,则会显示“此网站无法使用”。我看不到任何进程在端口5000上运行。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

ip 0.0.0.0是Docker镜像中的本地地址 。如果要访问外部图像(即计算机本地),则必须公开给定端口。这是EXPOSE parameter documentation

如果您运行命令:

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

您的服务器可通过以下方式访问:

http://localhost:5000

答案 1 :(得分:0)

BTW,我制作了一个公共(和开源)Docker镜像,其中包含可用于构建Python Flask Web应用程序的所有铃声和口哨声。

它有uWSGI用于运行应用程序,Nginx用于提供HTTP和Supervisord来控制它们,因此您不必学习如何安装和配置所有这些来构建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