Docke最初實現是基於LXC。LXC為Linux Container的簡寫。可以提供輕量級的虛擬化,以便隔離進程和資源,而且不需要提供指令解釋機制以及全虛擬化的其他復雜性。相當於C++中的NameSpace。容器有效地將由單個操作系統管理的資源劃分到孤立的組中,以更好地在孤立的組之間平衡有沖突的資源使用需求。
docker並不是LXC替代品,docker底層使用了LXC來實現,LXC將linux進程沙盒化,使得進程之間相互隔離,並且能夠課哦內閣制各進程的資源分配。在LXC的基礎之上,docker提供了壹系列更強大的功能。
Docker能夠自動執行重復性任務,例如搭建和配置開發環境,從而解放了開發人員以便他們專註在真正重要的事情上:構建傑出的軟件。
用戶可以方便地創建和使用容器,把自己的應用放入容器。容器還可以進行版本管理、復制、分享、修改,就像管理普通的代碼壹樣。
docker的三個概念:
鏡像(Image):類似於虛擬機中的鏡像,是壹個包含有文件系統的面向Docker引擎的只讀模板。任何應用程序運行都需要環境,而鏡像就是用來提供這種運行環境的。例如壹個Ubuntu鏡像就是壹個包含Ubuntu操作系統環境的模板,同理在該鏡像上裝上Apache軟件,就可以稱為Apache鏡像。
容器(Container):類似於壹個輕量級的沙盒,可以將其看作壹個極簡的Linux系統環境(包括root權限、進程空間、用戶空間和網絡空間等),以及運行在其中的應用程序。Docker引擎利用容器來運行、隔離各個應用。容器是鏡像創建的應用實例,可以創建、啟動、停止、刪除容器,各個容器之間是是相互隔離的,互不影響。註意:鏡像本身是只讀的,容器從鏡像啟動時,Docker在鏡像的上層創建壹個可寫層,鏡像本身不變。
倉庫(Repository):類似於代碼倉庫,這裏是鏡像倉庫,是Docker用來集中存放鏡像文件的地方。註意與註冊服務器(Registry)的區別:註冊服務器是存放倉庫的地方,壹般會有多個倉庫;而倉庫是存放鏡像的地方,壹般每個倉庫存放壹類鏡像,每個鏡像利用tag進行區分,比如Ubuntu倉庫存放有多個版本(12.04、14.04等)的Ubuntu鏡像。
docker的用途:
官方給的是bulid ship run,就是編譯、裝載、運行。就是實現了應用的封裝、部署、運行的生命周期管理只要在glibc的環境下,都可以運行。
諧雲自主研發的容器雲平臺,是基於Docker和Kubernetes技術構建的壹套完整IT標準化和自動化框架,以“面向終態、優化IT資源”為目標的新壹代PaaS平臺,能夠提高企業的IT管理能力,在降低運營成本和風險的同時,獲得更高的運維效率,保障業務穩定運行和高效叠代。