一一一 docker的8個使用場景一一一
1.簡化配置
虛擬機的最大好處是能在你的硬件設(shè)施上運行各種配置不一樣的平臺(軟件, 系統(tǒng)), Docker在降低額外開銷的情況下提供了同樣的功能. 它能讓你將運行環(huán)境和配置放在代碼匯總?cè)缓蟛渴? 同一個Docker的配置可以在不同的環(huán)境環(huán)境中使用, 這樣就降低了硬件要求和應(yīng)用環(huán)境之間耦合度.
2.代碼流水線管理
代碼從開發(fā)者的機器到最終在生產(chǎn)環(huán)境上的部署, 需要經(jīng)過很多的中堅環(huán)境. 而每一個中間環(huán)境都有自己微小的差別, Docker給應(yīng)用提供了一個從開發(fā)到上線均一致的環(huán)境, 讓代碼的流水線變得簡單不少.
3.提升開發(fā)效率
不同環(huán)境中, 開發(fā)者的共同目標(biāo):
一, 想讓開發(fā)環(huán)境盡量貼近生產(chǎn)環(huán)境.
二 , 想快速搭建開發(fā)環(huán)境
開發(fā)環(huán)境的機器通常內(nèi)存比較小, 之前使用虛擬的時候, 我們經(jīng)常需要為開發(fā)環(huán)境的機器加內(nèi)存, 而現(xiàn)在Docker可以輕易的讓幾十個服務(wù)在Docker中跑起來.
4.隔離應(yīng)用
開發(fā)時會在一個臺機器上運行不同的應(yīng)用.
一、 為了降低成本, 進行服務(wù)器整合
二、將一個整體式的應(yīng)用拆分成低耦合的單個服務(wù)(微服務(wù)架構(gòu))
5.整合服務(wù)器
Docker隔離應(yīng)用的能力使得Docker可以整合多個服務(wù)器以降低成本. 由于沒有多個操作系統(tǒng)的內(nèi)存占用, 以及能在多個實例之間共享沒有使用的內(nèi)存, Docker可以比虛擬機提供更好的服務(wù)器整合解決方案.
6.調(diào)試能力
Docker提供了很多的工具, 這些工具不一定只是針對容器, 但是卻適用于容器. 他們提供了很多功能, 包括可以為容器設(shè)置檢查點, 設(shè)置版本, 查看兩個容器之間的差別, 這些特性可以幫助調(diào)試Bug.
7.多租戶環(huán)境
多租戶環(huán)境的應(yīng)用中, 它可以避免關(guān)鍵應(yīng)用的重寫.我們一個特別的關(guān)于這個場景的例子是為loT(物聯(lián)網(wǎng))的應(yīng)用開發(fā)一個快速, 易用的多租戶環(huán)境. 這種多租戶的基本代碼非常復(fù)雜, 很難處理, 重新規(guī)劃以應(yīng)用不但消耗時間, 也浪費金錢.
使用Docker, 可以為每一個租戶的應(yīng)用層的多個實例創(chuàng)建隔離的環(huán)境, 這不僅簡單而且成本低廉, 因為Docker環(huán)境啟動的速度快, diff命令很高效.
8.快速部署
Docker為進程創(chuàng)建一個容器, 不需要啟動一個操作系統(tǒng), 時間縮短為秒級別.
可以在數(shù)據(jù)中心創(chuàng)建銷毀資源而無須擔(dān)心重新啟動帶來的開銷. 通常數(shù)據(jù)中心的資源利用率只有30% , 通過使用Docker并進行有效的資源分配可以提高資源的利用率.
二 docker的缺點
Docker 的安裝非常容易.目前,Docker支持所有的Linux系列系統(tǒng),(Ubuntu,RHEL,Debian等).通過Boot2Docker虛擬工具,在OS X 和 Windows下也能夠正常運行Docker.
注: Docker運行環(huán)境的限制:
□必須是64位機器上運行,目前僅支持 x86_64和AMD64,32系統(tǒng)不支持.
□系統(tǒng)的Linux內(nèi)核必須是3.8或者更高,內(nèi)核支持Device Mapper,AUFS,VFS,btrfs等存儲格式.
□內(nèi)核必須支持cgroups和命名空間.
三 docker的相關(guān)知識點
Docker組件(核心):鏡像、容器由境、庫吼蚁。
采用C/S架構(gòu):客戶端(執(zhí)行程序)→通過命令行和API形式和守候程序(提供Docker服務(wù))進行通訊。
鏡像:一個只讀的靜態(tài)模板(框架體系);包含環(huán)境和應(yīng)用執(zhí)行代碼(框架語言)眉撵;采用分層機制帐要。將新增數(shù)據(jù)通過聯(lián)合文件系統(tǒng)附加在原基礎(chǔ)上把敞。
容器:一個運行時環(huán)境,是鏡像的運行狀態(tài)榨惠,是鏡像執(zhí)行的一種動態(tài)表現(xiàn)奋早。
庫:使用注冊服務(wù)器(共有的or私有的)存儲和共享用戶的鏡像,是某個特定用戶存儲鏡像的目錄赠橙。
*Docker特性:
*隔離性:libcontainer(默認(rèn)容器)=>內(nèi)核命名空間耽装。
*安全性:內(nèi)部(cgroups)| 容器和宿主主機(內(nèi)核能力機制)。
*可度量性:cgroups(控制組)→資源度量和分配(用戶)期揪。
*移植性:AUFS(快速更新)→層的概念掉奄。
-----使用AUFS作為Docker容器的文件系統(tǒng),提供的好處:
□節(jié)省存儲空間:多個容器可以共享一個基礎(chǔ)鏡像存儲.
□快速部署:當(dāng)要部署多個來自同一個基礎(chǔ)鏡像的容器時,避免多次復(fù)制操作.
□升級方便:升級一個基礎(chǔ)鏡像即可影像到所有基于它的容器.
□增量修改:可以在不改變基礎(chǔ)鏡像的同時修改其他目錄文件,所有的操作都發(fā)生在最上層的寫操作層,增加了基礎(chǔ)鏡像的可共享內(nèi)容.
Docker優(yōu)點(比較LXC):
*跨平臺可移植性:按統(tǒng)一標(biāo)準(zhǔn)打包(鏡像中)凤薛,可傳播姓建。
*面向應(yīng)用:優(yōu)化部署應(yīng)用(設(shè)計哲學(xué))→API,接口及文檔(體現(xiàn))缤苫。
*版本控制:追蹤速兔、查詢、記錄版本信息(應(yīng)用程序更改史)和回滾版本等
*組件復(fù)用:組件式搭建(基礎(chǔ)鏡像)→Python(運行環(huán)境) | postgreasql(基礎(chǔ)鏡像)活玲。
*共享性:公共的注冊服務(wù)器(可免費下載源碼)涣狗。