1、容器簡介
Docker 提供了一個可以運行你的應用程序的封套(envelope),或者說容器。它原本是 dotCloud 啓動的一個業餘項目,並在前些時候開源了。它吸引了大量的關注和討論,導致 dotCloud 把它重命名到 Docker Inc。它最初是用 Go 語言編寫的,它就相當於是加在 LXC(LinuX Containers,linux 容器)上的管道,允許開發者在更高層次的概念上工作。
Docker 擴展了 Linux 容器(Linux Containers),或着說 LXC,通過一個高層次的 API 爲進程單獨提供了一個輕量級的虛擬環境。Docker 利用了 LXC, cgroups 和 Linux 自己的內核。和傳統的虛擬機不同的是,一個 Docker 容器並不包含一個單獨的操作系統,而是基於已有的基礎設施中操作系統提供的功能來運行的。
Docker類似虛擬機的概念,但是與虛擬化技術的不同點在於下面幾點:
1.虛擬化技術依賴物理CPU和內存,是硬件級別的;而docker構建在操作系統上,利用操作系統的containerization技術,所以docker甚至可以在虛擬機上運行。
2.虛擬化系統一般都是指操作系統鏡像,比較複雜,稱爲“系統”;而docker開源而且輕量,稱爲“容器”,單個容器適合部署少量應用,比如部署一個redis、一個memcached。
3.傳統的虛擬化技術使用快照來保存狀態;而docker在保存狀態上不僅更爲輕便和低成本,而且引入了類似源代碼管理機制,將容器的快照歷史版本一一記錄,切換成本很低。
4.傳統的虛擬化技術在構建系統的時候較爲複雜,需要大量的人力;而docker可以通過Dockfile來構建整個容器,重啓和構建速度很快。更重要的是Dockfile可以手動編寫,這樣應用程序開發人員可以通過發佈Dockfile來指導系統環境和依賴,這樣對於持續交付十分有利。
5.Dockerfile可以基於已經構建好的容器鏡像,創建新容器。Dockerfile可以通過社區分享和下載,有利於該技術的推廣。
Docker 會像一個可移植的容器引擎那樣工作。它把應用程序及所有程序的依賴環境打包到一個虛擬容器中,這個虛擬容器可以運行在任何一種 Linux 服務器上。這大大地提高了程序運行的靈活性和可移植性,無論需不需要許可、是在公共雲還是私密雲、是不是裸機環境等等。
Docker也是一個雲計算平臺,它利用Linux的LXC、AUFU、Go語言、cgroup實現了資源的獨立,可以很輕鬆的實現文件、資源、網絡等隔離,其最終的目標是實現類似PaaS平臺的應用隔離。
2、docker特性
1、文件系統隔離:每個進程容器運行在完全獨立的根文件系統裏。
2、資源隔離:可以使用cgroup爲每個進程容器分配不同的系統資源,例如CPU和內存。
3、網絡隔離:每個進程容器運行在自己的網絡命名空間裏,擁有自己的虛擬接口和IP地址。
4、寫時複製:採用寫時複製方式創建根文件系統,這讓部署變得極其快捷,並且節省內存和硬盤空間。
5、日誌記錄:Docker將會收集和記錄每個進程容器的標準流(stdout/stderr/stdin),用於實時檢索或批量檢索。
6、變更管理:容器文件系統的變更可以提交到新的映像中,並可重複使用以創建更多的容器。無需使用模板或手動配置。
7、交互式Shell:Docker可以分配一個虛擬終端並關聯到任何容器的標準輸入上,例如運行一個一次×××互shell。
3、docker版本介紹
隨着Docker的不斷流行與發展,docker公司(或稱爲組織)也開啓了商業化之路,Docker 從 17.03版本之後分爲 CE(Community Edition) 和 EE(Enterprise Edition)。
3.1、docker EE
隨着Docker的不斷流行與發展,docker公司(或稱爲組織)也開啓了商業化之路,Docker 從 17.03版本之後分爲 CE(Community Edition) 和 EE(Enterprise Edition)。
3.2、docker CE
Docker CE是免費的Docker產品的新名稱,Docker CE包含了完整的Docker平臺,非常適合開發人員和運維團隊構建容器APP。事實上,Docker CE 17.03,可理解爲Docker 1.13.1的Bug修復版本。因此,從Docker 1.13升級到Docker CE 17.03風險相對是較小的。
大家可前往Docker的RELEASE log查看詳情https://github.com/docker/docker/releases 。
Docker公司認爲,Docker CE和EE版本的推出爲Docker的生命週期、可維護性以及可升級性帶來了巨大的改進。
3.3、版本迭代計劃
Docker從17.03開始,轉向基於時間的YY.MM 形式的版本控制方案,類似於Canonical爲Ubuntu所使用的版本控制方案。
Docker CE有兩種版本:
edge版本每月發佈一次,主要面向那些喜歡嘗試新功能的用戶。
stable版本每季度發佈一次,適用於希望更加容易維護的用戶(穩定版)。
edge版本只能在當前月份獲得安全和錯誤修復。而stable版本在初始發佈後四個月內接收關鍵錯誤修復和安全問題的修補程序。這樣,Docker CE用戶就有一個月的窗口期來切換版本到更新的版本。舉個例子,Docker CE 17.03會維護到17年07月;而Docker CE 17.03的下個穩定版本是CE 17.06,這樣,6-7月這個時間窗口,用戶就可以用來切換版本了。
Docker EE和stable版本的版本號保持一致,每個Docker EE版本都享受爲期一年的支持與維護期,在此期間接受安全與關鍵修正。
Docker從17.03開始分爲企業版與社區版,社區版並非閹割版,而是改了個名稱;企業版則提供了一些收費的高級特性。
docker EE版本維護期1年;CE的stable版本三個月發佈一次,維護期四個月;另外CE還有edge版,一個月發佈一次
<<<<<<<< end >>>>>>>>>