最完整的Docker聖經 - Docker原理圖解及全環境安裝

Docker的最大特色

首先是Docker的特色,這邊對這些技術名詞不了解沒關係,在接下來的章節中,會針對這些特色有更多的說明。

  • 是一個OS等級虛擬化的產品
  • 使用Go語言開發。
  • 實作了Linux Kernel功能。
  • Modules的功能來完成其「虛擬化」的「長相」。
  • 在呼叫Linux的核心提供的虛擬化模組時,0.9版前還需依賴LXC、libvirt及systemd-nspawn的功能,0.9版之後,就預設使用自己開發的libcontainter來呼叫(也可向前相容)。
  • 100%原生硬體的效能。
  • VM等級的隔離資源分配
  • 應用程式等級的輕量及方便。
  • 唯讀多層次映像檔做為模板(用來產生Container)。
  • 產生Container後,保持最上層可寫入(用來提供服務)。
  • 服務完全可攜,可以讓Docker在不同的VM/機器上跑來跑去

在擁有了最後三點特色之後,Docker完全擺脫LXC的影子,讓Container再度進化,變成又小又輕又可攜,一下子就成為DevOps最愛的好物!

注意 - LXC和最大的區別是

相對於LXC,Docker是更輕量的Container,LXC較像VM,Docker較像應用程式。針對同一個應用,LXC仍需要建立Container、下載作業系統、安裝平台軟體、安裝應用程式。但對Docker來說,一行帶參數的指令就完成上述所有的動作。我們會在Docker的使用介紹章節中,套用LXC章節中完全一樣的訊息交流平台Etherpad為例子。