這是教你手把手部署 Docker + Django + MySQL + Nginx + Gunicorn 的傻瓜式教程,目的是讓 Docker 菜鳥也能快速部署容器化的 Django 應用。mysql
須要全面深刻了解 Docker 的讀者,請系統性地學習官方文檔。sql
教程共四章:docker
章節之間是繼承關係,建議小白讀者按順序閱讀,不要着急。django
Docker 是一種基於 Linux 的容器技術,它能夠將你的代碼以及代碼須要的環境打包到一塊兒,從而組裝爲一個標準、輕量級、安全的隔離環境。安全
在容器技術以前,業界相似的明星產品是虛擬機:也就是在你的操做系統裏面裝一個軟件,經過這個軟件模擬出多個子系統出來。子系統之間是隔離的,互不影響。但虛擬機要模擬出整個系統,所以佔用空間巨大,啓動更是緩慢。服務器
而 Docker 沒有虛擬機的缺點。它只須要虛擬一個小規模的環境(小到甚至只有幾MB),相似於「沙箱」。微信
看本教程的讀者,相信你已經看過博主的Django 搭建我的博客教程了,也在部署項目時掙扎痛苦過了。部署爲何難,是由於各雲服務器的環境都有所不一樣,而這些微小的不一樣累積多了,就致使一樣的部署流程,這臺機器行,到另一臺機器就怎麼都不行了。ide
但若是你有了 Docker 就不同了,由於 Docker 能夠把系統環境和代碼一同打包進去,真正作到了**"一次開發,到處運行"**,無論你的機器有多複雜的環境,容器就像一個集裝箱,把無關的東西通通隔離在外面。學習
有了 Docker,更換服務器也變得很是的簡單,只須要把項目代碼、數據、Docker 構建文件下載到新服務器上,幾條指令就搞定了。啥配置 Nginx 、配置 Gunicorn 、配置 Mysql,通通均可以無論了,由於 Docker 構建文件裏早就寫好了。網站
有了 Docker,你只須要購買一臺服務器,就能夠在上面部署多個站點,而且不用擔憂它們互相影響,由於每一個容器都是隔離起來的,很是的安全。
難怪容器技術近幾年如此的火熱了。不學你說的過去嗎?
博主會在力所能及的狀況下幫助每個人,可是天天下班後須要面對讀者千奇百怪的開發問題,精力實在有限。在此說明向博主提問的規範,提升雙方的溝通效率:
若是你對如何將 Django 項目部署到雲端徹底不瞭解的,強烈建議先看看傳統部署流程,創建大體印象:
若是你想從新學習 Django 開發的,能夠先看博主的 Django 教程:
此外,本文撰寫時主要參考瞭如下資料:
多說無益,吸一口氣,讓挑戰開始吧!