【保姆級】Python項目(Flask網頁)部署到Docker的完整過程
- 2021 年 7 月 15 日
- 筆記
大家好,我是辰哥~
前提:相信看到這篇文章的讀者應該已經學會了Docker的安裝以及Docker的基本使用,如果還不會的可以參考我之前的文章進行詳細學習!
1.安裝版:2300+字!在不同系統上安裝Docker!看這一篇文章就夠了
學完了Docker之後,今天咱們就來講解如何在docker部署咱們的python程式!(下圖是講解安裝docker時候,會有一期推文講解部署python程式,今天就實現了)
01、Flask網頁項目
辰哥以之前的一個簡單的項目來進行演示(Flask結合ECharts實現在線可視化效果,超級詳細!),這個是用flask編寫的一個網頁,其功能:網頁在線可視化。網頁介面如下:
本文以這個項目為例部署到docker,為了大家方便學習,這裡也將這個網頁完整源碼給大家
源碼地址:
網頁程式目錄結構:
網頁程式的情況就介紹完畢了,現在開始部署~
02、部署到docker
1.生成requirement.txt
Flask網頁程式中需要依賴一些Python庫,為了方便在docker上進行安裝,所以將需要的庫整合到requirement.txt中。
在終端中進入到項目目錄下,執行下面的目錄,生成requirement.txt
pip freeze > requirements.txt
生成的requirement.txt如下:
這裡包含很多flask不需要用到的庫,咱們把不需要的刪除~
因為我的flask網頁程式中,只用到了這兩個庫,因此留下的僅有兩個。
2.創建Dockerfile
Flask網頁程式放在Chenge文件夾中(前面生成的requirement.txt也在Chenge文件夾中),將Chenge文件夾放到0714文件夾中。
接著在0714文件夾下新建一個Dockerfile文件(和Chenge文件夾同級)。
什麼是Dockerfile?
Dockerfile 是一個文本文件,其內包含了一條條的指令(Instruction),有了 Dockerfile,就可以創建我們所需要的鏡像
編輯DockerFile文件
#設置python環境鏡像
Dockerfile裡面命令大意是:
1、設置python版本
2、flask網頁程式目錄
3、docker工作目錄
4、安裝網頁程式執行所需的庫
5、執行python程式(網頁程式主程式)
3.創建鏡像chenge_image
提醒:將0714文件夾上傳到伺服器(如果docker安裝遠程伺服器)
在終端中進入到0714文件夾中,先查看一下當前的鏡像
docker images
可以看到當前docker有兩個鏡像,現在我們開始創建網頁程式鏡像chenge_image
docker build -t chenge_image .
創建過程如下:
可以看到正在拉取python3.6的環境,安裝flask庫等
再看一下docker的所有鏡像
可以看到咱們的鏡像chenge_image就已經存在了
4.啟動容器
docker run -it -p 5000:5000 --name=chenge chenge_image
-it:表示互動式終端的容器,非啟動後立刻結束的容器
-p是埠映射,表示將docker的5000埠,映射到本機的5000埠
–name 給容器起個名稱,這裡命名為chenge
啟動效果:
啟動的介面和咱們本地啟動沒有差別!
提醒:
1、這裡的172.17.0.2是docker的這個容器ip(實際上就是咱們本機/伺服器的內網IP)
2、建議在flask程式中的host設置為0.0.0.0,不然可能出現無法訪問的情況
flask網頁程式中host的設置
5.訪問網頁
訪問鏈接:
我的本機ip為192.168.31.196,因此訪問鏈接為:
//192.168.31.196:5000/pie-nest
如果是遠程伺服器,用公網ip
可以看到網頁訪問成功,並且頁面樣式這些都沒問題。這樣我們的網頁程式就成功部署docker。
03、小結
本文詳細講解了python程式部署到docker,一步一截圖,超級詳細,不會的小夥伴,感覺動手練習!!!!