【保姆級】Python專案(Flask網頁)部署到Docker的完整過程

Python研究者發表於2021-07-15

大家好,我是辰哥~

前提:相信看到這篇文章的讀者應該已經學會了Docker的安裝以及Docker的基本使用,如果還不會的可以參考我之前的文章進行詳細學習!

1.安裝版:2300+字!在不同系統上安裝Docker!看這一篇文章就夠了

2.使用版:Docker學不會?不妨看看這篇文章

學完了Docker之後,今天我們們就來講解如何在docker部署我們們的python程式!(下圖是講解安裝docker時候,會有一期推文講解部署python程式,今天就實現了)

01、Flask網頁專案

辰哥以之前的一個簡單的專案來進行演示(Flask結合ECharts實現線上視覺化效果,超級詳細!),這個是用flask編寫的一個網頁,其功能:網頁線上視覺化。網頁介面如下:

本文以這個專案為例部署到docker,為了大家方便學習,這裡也將這個網頁完整原始碼給大家

原始碼地址:

https://gitee.com/lyc96/flash-visualization

網頁程式目錄結構:

網頁程式的情況就介紹完畢了,現在開始部署~

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,因此訪問連結為:

http://192.168.31.196:5000/pie-nest

如果是遠端伺服器,用公網ip

可以看到網頁訪問成功,並且頁面樣式這些都沒問題。這樣我們的網頁程式就成功部署docker。

03、小結

本文詳細講解了python程式部署到docker,一步一截圖,超級詳細,不會的小夥伴,感覺動手練習!!!!

相關文章