如何在Docker上运行Gunicorn?
在这篇文章中,我们将学习如何在Docker上运行Gunicorn。
在创建具有Gunicorn功能的Docker容器之前,我们必须了解一些关于Web服务器和Gunicorn的基础知识。
Gunicorn简介
假设我们有一个Web服务器,它向用户显示Python代码的输出。这个Web服务器每次收到请求时都会执行Python脚本,这会导致它重启、过载并延迟响应(对于大型脚本来说延迟会非常大)。所以这里我们遇到的真正问题是一个静态服务器,但我们需要一个动态的解决方案。Gunicorn就是上述问题的动态解决方案。

上图解释了问题陈述,下图显示了解决方案的结构。

有一个非常著名的基础架构,它使用Nginx、Gunicorn和Django一起提供动态功能。Nginx解决负载均衡问题,Gunicorn解决静态问题。

在Docker容器上部署
创建Django项目不在本文的讨论范围之内,我们可以创建一个最小化的应用程序并将该Python应用程序存储在Docker容器中。这个Docker容器将安装Gunicorn,我们将在容器上启动Python应用程序。
算法(步骤)
创建一个Python应用程序。
创建一个requirements文件。
创建一个Dockerfile。
执行容器化。
检查服务器输出。
步骤1:创建Python应用程序
创建一个简单的Python应用程序对象,输出“Hello Tutorialspoint!”
示例
def app(environ, start_response): data = b'Hello, Tutorialspoint!
' status = '200 OK' response_headers = [ ('Content-type', 'text/plain'), ('Content-Length', str(len(data))) ] start_response(status, response_headers) return iter([data])
将此文件保存为myapp.py。
步骤2:创建一个requirements文件
python3 gunicorn
将此文件保存为requirements.txt。
步骤3:创建一个Dockerfile
这个Dockerfile将创建一个完全运行Python和Gunicorn的Docker容器镜像。
将下面的文件保存为Dockerfile(无扩展名)。
示例
FROM python WORKDIR /app COPY ./myapp.py ./ COPY ./requirements.txt ./ RUN pip install --upgrade pip --no-cache-dir RUN pip install –r /app/requirements.txt --no-cache-dir CMD [“gunicorn”,”-w” “4”,”myapp:app”,”--bind” “0.0.0.0:8000”]
步骤4:从Dockerfile构建Docker镜像
#docker build –t unicornimage .
步骤5:执行容器化
从unicornimage镜像创建一个Docker容器。
示例
#docker run –itd --name unicorncontainer –p 8000:8000 unicornimage
步骤6:检查服务器是否可以在主机上访问
转到浏览器并搜索localhost:8000以查看输出。

类似地,要创建一个Django项目,请在requirements.txt文件中添加django和gunicorn,然后就可以开始了。
数据结构
网络
关系型数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP