###### tags: `Nas and Android` # 第二步,在NAS上基於Docker安裝Python與Flask並架設一個簡易Web應用。 關鍵字: Python、Flask、Web應用。 入門flask: https://ithelp.ithome.com.tw/articles/10258223?sc=pt ![](https://i.imgur.com/qWbNVlv.png =400x) flask在一般電腦實作當中,可以使用瀏覽器去看結果,倘若flask是安裝在Nas上,就需要開啟Nas的Web Staion套件。 ![](https://i.imgur.com/ZKge1Uo.png) ## 先將面入門flask的參考連結在nas上做一次。 首先要將python和flask基於docker安裝到Nas上。 <font size=6>(注意先暫時關閉防火牆)</font> 有設定防火牆的要關,沒設定的不用理會。 參考網站1:https://teslalifesharing.tustudio.app/2020/10/05/synology-nas-docker-python/ 參考網站2:https://blog.csdn.net/stone0823/article/details/120932510 2個網站上做結合,將參考網站1的requirements.txt改成與參考網站2。 ### 第一步: 先關閉防火牆與開啟ssh服務,之後記得恢復,不然被駭爛。 ### 第二步: 新增下圖中的資料夾以及檔案 ![](https://i.imgur.com/Q7E8b3f.png) 之後對Dockerfile與requirements.txt進行編輯。 ![](https://i.imgur.com/gMnE0Fq.png =250x) ![](https://i.imgur.com/7rex2qS.png =200x175) <font color=green>Dockerfile的第11行,表示這個docker容器只要一配置,就會去執行python的mian.py的意思。</font> 再把[入門flask](https://ithelp.ithome.com.tw/articles/10258223?sc=pt)參考網站提供的程式碼 https://gitlab.com/GammaRayStudio/DevelopmentGroup/Python/FlaskSE 直接丟入flask_test資料夾。 ![](https://i.imgur.com/2lb3QVw.png =400x200) --- ### 第三步 在flask_test資料夾裡面,新增並編輯main.py- ![](https://i.imgur.com/UMMBT3a.png) 到你的桌機開啟putty或是其他shell,存取nas的終端機服務。 開啟ssh後到指定路經(我的路徑是:/volume1/docker/python-flask)輸入以下指令: `sudo docker build -t flask_test .` 下載並設定docker容器。 而該容器能夠執行python。 ![](https://i.imgur.com/Qhx067V.png =800x600) 之後即可在docker裡面發現新的docker映像檔。 ![](https://i.imgur.com/NNDJYux.png) ### 第四步(很重要)。 到docker套件當中進行"佈置"docker映像檔。 ![](https://i.imgur.com/kHfPXWI.png) 進行docker設定 ![](https://i.imgur.com/sy6XAwo.png) 可看到我們剛才dockerfile設定的指令。 <font size=3 color=red>注意! Dockerfile在nas的路徑會影響執行指令的路徑。</font> ![](https://i.imgur.com/sBaEH82.png) 連接埠設定★★★★★: 由於我們的main.py設定為port=5000,這時把docker想成一個獨立作業系統開出port:5000,然後用Nas的port:6262(隨便設)去與docker容器的port進行對接。(網路port相關知識) | 1 | 2 | | -------- | -------- | | ![](https://i.imgur.com/d4ZFrkL.png =200x200)|![](https://i.imgur.com/FKsliR9.png =200x200) 儲存空間設定 (如果有出錯,先跨過這個步驟。 這步驟有無都無所謂,因為是docker,只要刪除docker就全不見了) ![](https://i.imgur.com/Bq6GQzG.png) 這個東西就很像使用虛擬機(VMware或VM Virtualbox)時,實體電腦與虛擬機的共享資料夾一樣,虛擬機可以掛載實體機的資料夾。 # 最終結果 左邊是Nas,右邊是我桌機的畫面。 然後該DOCKER就會一直執行著這樣~~ ![](https://i.imgur.com/F1eg4ug.png) <font size=5 color=red> 最後記得: 恢復防火牆與SSH的設定。 </font> <font size=5>注意!!!!!!!!!!!!!</font> 在nas上面執行python與flask,只要每修改一次.py檔案,都需要重新"佈置"docker(也就是說從第3步開始重新做),所以最好先在桌機或筆電上開發完後,才將你的專案移植到NAS上 (Nas只提供運行的環境,並沒有提供開發的環境。),並再進行第二步決定要執行哪個檔案與參數。 又因為是移植到NAS上,你在桌機的Python與Flask都也用docker去安裝,那麼移動到Nas就只需要輸出一個docker file與python的requirements.txt就可以輕鬆移植到Nas上了。