共計 1931 個字符,預(yù)計需要花費 5 分鐘才能閱讀完成。
這篇文章給大家介紹如何進行 Docker 簡介的原理分析,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
生活在云時代的程序員真是很幸福,各種各樣豐富的開發(fā)工具可選。既然生活在云時代,那么,程序員就應(yīng)該用云思維來進行開發(fā),本系列文章就是基于 Docker 開發(fā)學(xué)習(xí)和總結(jié)筆記。
背景
Docker 是一個開源項目,誕生于 2013 年初,最初是 dotCloud 公司內(nèi)部的一個業(yè)余項目,使用 go 語言實現(xiàn),遵從 Apache 2.0 協(xié)議,項目代碼托管在 github 上。
由于眾多新穎的特性以及項目本身的開放性,Docker 在不到兩年的時間迅速獲得諸多廠商的青睞,其中包括 Google,Microsoft,VMware 等業(yè)界行業(yè)領(lǐng)導(dǎo)者,今年 9 月中旬,Docker 獲得 4000 萬美元的 C 輪融資,以推動分布式應(yīng)用方面的發(fā)展。
原理
Docker 是一個基于輕量級虛擬化技術(shù)的容器引擎項目,Docker 可以在容器內(nèi)快速自動化部署應(yīng)用,并且可以通過內(nèi)核虛擬化技術(shù)(namespaces 以及 cgoups 等)來提供容器的資源隔離與安全保障,由于 Docker 通過操作層的虛擬化實現(xiàn)隔離,所以 Docker 容器在運行時,不需要類似虛擬機(VM)額外操作系統(tǒng)開銷,提高資源利用率,并且提升注入 IO 等方面性能。
Docker 的英文意思是碼頭工人,也就是搬運工,搬運的時集裝箱 (Container),集裝箱里裝的不是商品,而是任意類型的 App,docker 把 App(叫 Paylaod)裝在 Container 內(nèi),通過 Linux Container 技術(shù)的包裝將 App 變成一種標(biāo)準(zhǔn)的、可移植的、自管理的組件,這種組建可以在開發(fā)者的系統(tǒng)中開發(fā)、調(diào)試、運行,最終非常方便和一致地運行在產(chǎn)品(Porduction)環(huán)境下。
特性
Docker 提供了一種可移植的配置標(biāo)準(zhǔn)化機制,允許你一致性地在不同的機器上運行同一個 Container;而 LXC 本身可能因為不同機器的不同配置而無法方便地移植運行;
Docker 以 App 為中心,為應(yīng)用的部署做了很多優(yōu)化,而 LXC 的幫助腳本主要是聚焦于如何機器啟動地更快和耗更少的內(nèi)存;
Docker 為 App 提供了一種自動化構(gòu)建機制(Dockerfile),包括打包,基礎(chǔ)設(shè)施依賴管理和安裝等等;
Docker 提供了一種類似 git 的 Container 版本化的機制,允許你對你創(chuàng)建過的容器進行版本管理,依靠這種機制,你還可以下載別人創(chuàng)建的 Container,甚至像 git 那樣進行合并;
Docker Container 是可重用的,依賴于版本化機制,你很容易重用別人的 Container(叫 Image),作為基礎(chǔ)版本進行擴展;
Docker Container 是可共享的,有點類似 github 一樣,Docker 有自己的 INDEX,你可以創(chuàng)建自己的 Docker 用戶并上傳和下載 Docker Image;
Docker 提供了很多的工具鏈,形成了一個生態(tài)系統(tǒng);這些工具的目標(biāo)是自動化、個性化和集成化,包括對 PAAS 平臺的支持等;
Docker 與傳統(tǒng)虛擬街區(qū)別
## 為什么要學(xué)習(xí) docker
Docker 是一種新興的虛擬化方式,和傳統(tǒng)的虛擬化方式相比具有很多優(yōu)勢。
首先,Docker 提供的時系統(tǒng)級的虛擬化,相比傳統(tǒng)的虛擬化方式,Docker 資源利用率極高,除了容器內(nèi)的應(yīng)用外,Docker 基本上不消耗額外的系統(tǒng)資源,傳統(tǒng)的虛擬機同時開啟數(shù)個虛擬機時需要同時運行數(shù)個虛擬機應(yīng)用,而 Docekr 只需要啟動相應(yīng)的隔離層即可,所有,一臺主機可以運行成百上千的 Docker 容器。其次,Docker 容器的啟動是秒級的,這是傳統(tǒng)虛擬機所無法達(dá)到的。
更快的交付和部署
對開發(fā)和運維(devop)人員來說,最希望的就是一次創(chuàng)建或配置,可以在任意地方正常運行。
開發(fā)者可以使用一個標(biāo)準(zhǔn)的鏡像來構(gòu)建一套開發(fā)容器,開發(fā)完成之后,運維人員可以直接使用這個容器來部署代碼。Docker 可以快速創(chuàng)建容器,快速迭代應(yīng)用程序,并讓整個過程全程可見,使團隊中的其他成員更容易理解應(yīng)用程序是如何創(chuàng)建和工作的。Docker 容器很輕很快!容器的啟動時間是秒級的,大量地節(jié)約開發(fā)、測試、部署的時間。
## 學(xué)習(xí) Docker 應(yīng)該具備哪些知識
具備一定的 Linux 使用經(jīng)驗,能熟悉的使用 Linux 命令行。對 PAAS、LXC、CGroup、AUFS 有一定的了解基礎(chǔ)。
學(xué)習(xí)中需要注意什么
在學(xué)習(xí)的過程中可能會接觸到很多新概念,對于不太了解的概念應(yīng)該及時使用搜索引擎找找相應(yīng)的答案。多實踐,對于學(xué)習(xí)的過程遇到的問題應(yīng)該親自動手實踐,并解決。
關(guān)于如何進行 Docker 簡介的原理分析就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。