1. 程式人生 > 程式設計 >Django-Docker容器化部署:前言

Django-Docker容器化部署:前言

這是教你手把手部署 Docker + Django + MySQL + Nginx + Gunicorn 的傻瓜式教程,目的是讓 Docker 菜鳥也能快速部署容器化的 Django 應用。

需要全面深入瞭解 Docker 的讀者,請系統性地學習官方檔案

教程共四章:

  • 前言
  • Docker + Django 本地部署
  • Docker + Django + MySQL 本地部署
  • Docker + Django + MySQL + Nginx + Gunicorn 本地 + 雲端部署

章節之間是繼承關係,建議小白讀者按順序閱讀,不要著急。

教程特色

  • 零基礎、免費、中文、完整專案程式碼
  • 基於最新的 Docker 19.03.1、Python 3.7、Django 2.2
  • 博主熱情的技術支援

教程適宜人群

  • 完全沒接觸過 Docker,但卻想迅速搭建容器化專案的
  • 接觸過 Docker,但是卻不清楚如何用 Docker 搭建 Django 專案的

什麼是Docker

Docker 是一種基於 Linux 的容器技術,它可以將你的程式碼以及程式碼需要的環境打包到一起,從而組裝為一個標準、輕量級、安全的隔離環境。

在容器技術之前,業界類似的明星產品是虛擬機器器:也就是在你的作業系統裡面裝一個軟體,通過這個軟體模擬出多個子系統出來。子系統之間是隔離的,互不影響。但虛擬機器器要模擬出整個系統,因此佔用空間巨大,啟動更是緩慢。

而 Docker 沒有虛擬機器器的缺點。它只需要虛擬一個小規模的環境(小到甚至只有幾MB),類似於“沙箱”。

為什麼要學Docker

看本教程的讀者,相信你已經看過博主的Django 搭建個人部落格教程了,也在部署專案時掙扎痛苦過了。部署為什麼難,是因為各雲伺服器的環境都有所不同,而這些微小的不同累積多了,就導致同樣的部署流程,這臺機器行,到另外一臺機器就怎麼都不行了。

但如果你有了 Docker 就不一樣了,因為 Docker 可以把系統環境和程式碼一同打包進去,真正做到了**"一次開發,處處執行"**,不管你的機器有多複雜的環境,容器就像一個集裝箱,把無關的東西統統隔離在外面。

有了 Docker,更換伺服器也變得非常的簡單,只需要把專案程式碼、資料、Docker 構建檔案下載到新伺服器上,幾條指令就搞定了。啥配置 Nginx 、配置 Gunicorn 、配置 Mysql,統統都可以不管了,因為 Docker 構建檔案裡早就寫好了。

有了 Docker,你只需要購買一臺伺服器,就可以在上面部署多個站點,並且不用擔心它們互相影響,因為每個容器都是隔離起來的,非常的安全。

難怪容器技術近幾年如此的火熱了。不學你說的過去嗎?

提問須知

博主會在力所能及的情況下幫助每一個人,但是每天下班後需要面對讀者千奇百怪的開發問題,精力實在有限。在此說明向博主提問的規範,提高雙方的溝通效率:

  • **能夠在部落格評論區說清楚的問題,請儘量通過評論提問。**這樣做的好處是其他讀者也都能夠看到,方便大家一起討論、解決類似的問題。評論時請精煉語言並稍加排版,幫助博主節省一點點精力。
  • 喜歡尋找學伴互相交流學習的,可以加博主的Django交流QQ群:107143175,或者博主微信:dusai0523。一個人學習難免走彎路,有熱心人幫忙就不再寂寞了。

  • 如果你的問題必須結合圖片說明、或者特別難描述清楚的,可以通過Email提問。請詳細描述你的意圖、遇到的問題,然後將所有相關的程式碼、報錯、配置等資訊展示給我。博主不是技術大牛,沒辦法僅憑一句話或者一張圖來幫你排查問題。
  • 如果以上方法均無效,請先與博主溝通,將專案打包傳送給博主,執行你的程式碼來查詢問題。請注意這是最後才考慮的提問方式,雖然博主很樂於和讀者交流技術,但很多時候沒有精力逐個排查網友的程式碼。

資源列表

如果你對如何將 Django 專案部署到雲端完全不瞭解的,強烈建議先看看傳統部署流程,建立大致印象:

如果你想重新學習 Django 開發的,可以先看博主的 Django 教程:

此外,本文撰寫時主要參考了以下資料:

挑戰開始

多說無益,吸一口氣,讓挑戰開始吧!