這是教你手把手部署 Docker + Django + MySQL + Nginx + Gunicorn 的傻瓜式教程,目的是讓 Docker 菜鳥也能快速部署容器化的 Django 應(yīng)用。
教程共四章:
章節(jié)之間是繼承關(guān)系,建議小白讀者按順序閱讀,不要著急。 教程特色
教程適宜人群
什么是DockerDocker 是一種基于 Linux 的容器技術(shù),它可以將你的代碼以及代碼需要的環(huán)境打包到一起,從而組裝為一個(gè)標(biāo)準(zhǔn)、輕量級(jí)、安全的隔離環(huán)境。 在容器技術(shù)之前,業(yè)界類似的明星產(chǎn)品是虛擬機(jī):也就是在你的操作系統(tǒng)里面裝一個(gè)軟件,通過這個(gè)軟件模擬出多個(gè)子系統(tǒng)出來。子系統(tǒng)之間是隔離的,互不影響。但虛擬機(jī)要模擬出整個(gè)系統(tǒng),因此占用空間巨大,啟動(dòng)更是緩慢。 而 Docker 沒有虛擬機(jī)的缺點(diǎn)。它只需要虛擬一個(gè)小規(guī)模的環(huán)境(小到甚至只有幾MB),類似于“沙箱”。 為什么要學(xué)Docker看本教程的讀者,相信你已經(jīng)看過博主的Django 搭建個(gè)人博客教程了,也在部署項(xiàng)目時(shí)掙扎痛苦過了。部署為什么難,是因?yàn)楦髟品?wù)器的環(huán)境都有所不同,而這些微小的不同累積多了,就導(dǎo)致同樣的部署流程,這臺(tái)機(jī)器行,到另外一臺(tái)機(jī)器就怎么都不行了。 但如果你有了 Docker 就不一樣了,因?yàn)?Docker 可以把系統(tǒng)環(huán)境和代碼一同打包進(jìn)去,真正做到了**“一次開發(fā),處處運(yùn)行”**,不管你的機(jī)器有多復(fù)雜的環(huán)境,容器就像一個(gè)集裝箱,把無關(guān)的東西統(tǒng)統(tǒng)隔離在外面。 有了 Docker,更換服務(wù)器也變得非常的簡單,只需要把項(xiàng)目代碼、數(shù)據(jù)、Docker 構(gòu)建文件下載到新服務(wù)器上,幾條指令就搞定了。啥配置 Nginx 、配置 Gunicorn 、配置 Mysql,統(tǒng)統(tǒng)都可以不管了,因?yàn)?Docker 構(gòu)建文件里早就寫好了。 有了 Docker,你只需要購買一臺(tái)服務(wù)器,就可以在上面部署多個(gè)站點(diǎn),并且不用擔(dān)心它們互相影響,因?yàn)槊總€(gè)容器都是隔離起來的,非常的安全。 難怪容器技術(shù)近幾年如此的火熱了。不學(xué)你說的過去嗎? 提問須知博主會(huì)在力所能及的情況下幫助每一個(gè)人,但是每天下班后需要面對(duì)讀者千奇百怪的開發(fā)問題,精力實(shí)在有限。在此說明向博主提問的規(guī)范,提高雙方的溝通效率:
資源列表如果你對(duì)如何將 Django 項(xiàng)目部署到云端完全不了解的,強(qiáng)烈建議先看看傳統(tǒng)部署流程,建立大致印象: 如果你想重新學(xué)習(xí) Django 開發(fā)的,可以先看博主的 Django 教程: 此外,本文撰寫時(shí)主要參考了以下資料: 挑戰(zhàn)開始多說無益,吸一口氣,讓挑戰(zhàn)開始吧! |
|