簡介:html
flask也是要部署的。不能老在咱們的pycharm裏面跑測試服務器。python
各類配置linux,我看就算了吧。咱們用docker部署。linux
也就兩三行命令。nginx
一:選擇基礎鏡像git
GitHub repo: https://github.com/tiangolo/uwsgi-nginx-flask-dockergithub
Docker Hub image: https://hub.docker.com/r/tiangolo/uwsgi-nginx-flask/docker
這個應該是比較好的,做者維護的也不錯,不少人都在用這個。flask
本次選用版本爲:python3.6-alpine3.7(66M)瀏覽器
二:準備服務器環境安全
1.操做系統安裝
儘量選擇linux,即便沒有,你也用虛擬機裝一個。
2.ssh
配置支持ssh,sftp支持。方便用winscp傳文件。
3.docker
根據你的linux版本,裝上docker,並設置隨系統啓動自動開啓。
4.daocloud.io
配置daocloud.io連接支持。
最終環境就是你能夠很方便的用winscp鏈接一個配置了daocloud可管理docker的linux服務器。
5.端口檢查
若是你已經有一些容器運行在這個服務器上,請檢查是否已經佔用80端口,443端口。並在後面的配置中,自行替換空閒端口。
後面的文章以80端口和443端口來演示。
6.對本小結內容不理解的請看:http://www.cnblogs.com/jackadam/p/8371081.html
艹,你要補的課比較多,不貼連接了。
三:測試基礎鏡像
下面有兩種方式來測試基礎鏡像,請根據自身技術能力來決定跟隨哪一部分來進行測試。(僅須要一種)
1.命令行方式
在linux服務器上執行這條命令:
docker run -d -p 80:80 tiangolo/uwsgi-nginx-flask:python3.6-alpine3.7
等命令提示符再出來的時候就執行完了。
嘗試訪問服務器地址80端口:http://192.168.1.3/(自行替換你的服務器IP地址。)
鏡像和環境一切工做正常,瀏覽器會返回這個鏡像的默認返回:
Hello World from Flask in a uWSGI Nginx Docker container with Python 3.6 (default)
注意事項:
"permission denied"若是有這樣的提示,通常是selinux的緣由。
SELinux(Security-Enhanced Linux) 是美國國家安全局(NSA)對於強制訪問控制的實現,是 Linux歷史上最傑出的新安全子系統。
能夠用下面的這個命令臨時關閉,下次重啓就會再次開啓
setenforce 0
臨時關閉後能夠用這個來從新開啓
setenforce 1
這個命令用來查看狀態:Enforcing是開啓 Permissive是關閉
getenforce
2.圖形方式
登陸daocloud,依次點擊 發現鏡像--Docker Hub--輸入flask--找到tiangolo/uwsgi-nginx-flask
點擊部署
設定應用名稱
選擇版本
選擇主機
下一步,進行部署
點擊動態端口,給定映射端口
當即部署
uwSGI worker 就證實工做了。
嘗試訪問服務器地址80端口:http://192.168.1.3/(自行替換你的服務器IP地址。)
鏡像和環境一切工做正常,瀏覽器會返回這個鏡像的默認返回:
Hello World from Flask in a uWSGI Nginx Docker container with Python 3.6 (default)
四:刪除測試容器。
仍是兩種方法,命令行,圖形。
1,命令行:
docker ps docker stop ac4 docker rm ac4 docker ps
注意:
docker ps 是列出正在運行的容器。 ac4 是我準備刪除的容器的ID 的前3位,要根據你的容器ID來寫
能夠看第二列 IMAGES 來找到你準備刪除的容器。
先stop 中止容器,才能夠rm 刪除容器。
最後再docker ps 驗證一下。
以下圖所示。
2.圖形界面刪除。
進入daocloud管理--集羣管理--管理主機
找到你要管理的主機:
根據鏡像名或容器名找到準備刪除的容器。
先中止
再刪除
注意:
若是你是在圖形界面配置啓動的容器,那麼請到應用目錄刪除相應的應用。