Docker部署Flask應用的實現步驟

2022-09-24 18:33:13 字數 1773 閱讀 4579

一、目的

本地寫好乙個flask應用,用docker封裝,上傳至自己的伺服器,完成部署。

流程圖:

二、實驗環境

本地:windows10 1909

伺服器:阿里雲centos系統

三、所需軟體

1.dockerdesktop

2.pycharm 2020.3.3

四、步驟

1.本地完成flask應用的編寫

(1)在pycharm裡新建乙個flask應用docker_flask

(2)程式設計客棧安裝gunicorn,gevent包

(3)新建gunicorn.config.py檔案,並填入以下內容

workers = 5 # 定義同時開啟的處理請求的程序數量,根據**流量適當調整

worker_class = "gevent" # 採用gevent庫,支援非同步處理請求,提高吞吐量

bind = "0.0.0.0:8080" # 這裡8080可以隨便調整

(4)新建requirements.txt檔案,並填入以下內容

flask

gunicorn

gevent

(5)建立dockerfile檔案,並填入以下內容

from python:3.7

workdir /usr/src/app

copy requirements.txt ./

run pip install -r requirements.txt -i

copy . .

cmd ["gunicorn", "app:app", "-c", "./gunicorn.conf.py"] #前乙個app是python啟動的檔名,即app.py;後乙個是flask專案裡預啟動的應用名

(6)專案結構

2.構建docker映象

1.進入本專案的目錄

2.構建映象,輸入如下命令

docker build -t 'docker_flask' .

然後會執行六步操作,咋們不用管它,直接看結果

檢視一下

好了,到這裡咱們自製的映象就弄好了,可以在本地跑跑,實驗下。

3.上傳映象到阿里雲倉庫

(1)在阿里雲上建立乙個自己的docker倉庫。

(2)上傳映象

1.登入阿里雲docker registry,記得使用者名稱換成自己的。

docker login --use你的阿里雲使用者名稱 registry.cn-hangzhou.aliyuncs.com

登入密碼就是你的阿里雲登入密碼

2.輸入以下兩行命令,將映象推送到registry

docker tag [映象的id] registry.cn-hangzhou.aliyuncs.com/命名空間/倉庫名稱:[映象版本號]

docker push registry.cn-hangzhou.aliyuncs.com/命名空間/倉庫名稱:[映象版本號www.cppcns.com]

然後又不用管,讓它自己跑完就行

我這裡是之前上傳上去了

4.在伺服器上拉取這個映象並執行(當然伺服器上得先把docker安好)

docker pull registry.cn-hangzhou.aliyuncs.com/命名空間/倉庫名:[映象版本號]

ssh登入伺服器,輸入上面的命令,然後檢視一下是否拉下來了

4.執行一下,看看能不能成

這裡我把docker的8080埠對映到伺服器的28080埠上

好了,輸入伺服器ip:28080,看看能不能看到hello wor記得開放埠)

Docker 部署 Flask 應用實踐

開啟docker 在專案目錄下編寫 dockerfile 檔案,以下是我專案中dockerfile檔案,並對每一行進行解讀 from python 3.6 專案的基礎映象為 python3.6 expose 8080 docker的指定出口埠為8080 run mkdir project name ...

gunicorn 部署 flask 應用

一般比較習慣使用uwsgi進行部署django,flask應用。但,有時受許可權限制,無法安裝uwsgi,所以就使用gunicorn進行部署。之前使用python3的使用,發現 supervisor是不支援。所以就不打算用supervisor了。純粹介紹gunicorn 簡單部署方法,完整流程。環境...

Flask 應用如何部署

2.flask 如何部署 3.基於docker的flask 部署 flask gunicorn nginx是最常用的flask部署方案,大家深究過為何用這樣的搭配麼?flask 是乙個web框架,而非web server,直接用flask拉起的web服務僅限於開發環境使用,生產環境不夠穩定,也無法承...