一、目的
本地寫好乙個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服務僅限於開發環境使用,生產環境不夠穩定,也無法承...