docker的好處是什么,讓我們一起了解一下?
Docker的9大好處分別是:
1、替代虛擬機(jī)(VM)
Docker可以在很多情況下替代虛擬機(jī)。如果用戶只關(guān)心應(yīng)用程序而不是操作系統(tǒng),可以用Docker替代虛擬機(jī),把操作系統(tǒng)交給其他人去考慮。Docker不僅啟動(dòng)速度比虛擬機(jī)快,遷移時(shí)也更為輕量,同時(shí)得益于它的分層文件系統(tǒng),與其他人共享變更時(shí)更簡單、更快捷。而且,它牢牢地扎根在命令行中,非常適合腳本化。
2、軟件原型
如果想快速體驗(yàn)軟件,同時(shí)避免干擾目前的設(shè)置或配備一臺(tái)虛擬機(jī)帶來的麻煩,Docker可以在幾毫秒內(nèi)提供一個(gè)沙盒環(huán)境。在親身體驗(yàn)之前,用戶很難感受到這種解放的效果。
3、打包軟件
因?yàn)閷?duì)Linux用戶而言,Docker鏡像實(shí)際上沒有依賴,所以非常適合用于打包軟件。用戶可以構(gòu)建鏡像,并確保它可以運(yùn)行在任何現(xiàn)代Linux機(jī)器上——就像Java一樣,但不需要JVM。
4、讓微服務(wù)架構(gòu)成為可能
Docker 有助于將一個(gè)復(fù)雜系統(tǒng)分解成一系列可組合的部分,這讓用戶可以用更離散的方式來思考其服務(wù)。用戶可以在不影響全局的前提下重組軟件,使其各部分更易于管理和可插拔。
5、網(wǎng)絡(luò)建模
由于可以在一臺(tái)機(jī)器上啟動(dòng)數(shù)百個(gè)(甚至數(shù)千個(gè))相互隔離的容器,因此對(duì)網(wǎng)絡(luò)進(jìn)行建模輕而易舉。這對(duì)于現(xiàn)實(shí)世界場景的測試非常有用,而且所費(fèi)無幾。
6、離線時(shí)啟用全棧生產(chǎn)力
因?yàn)榭梢詫⑾到y(tǒng)的所有部分捆綁在Docker容器中,所以用戶可以將其編排運(yùn)行在筆記本電腦中移動(dòng)辦公,即便在離線時(shí)也毫無問題。
7、降低調(diào)試支出
不同團(tuán)隊(duì)之間關(guān)于軟件交付的復(fù)雜談判在業(yè)內(nèi)司空見慣。我們親身經(jīng)歷過不計(jì)其數(shù)的這類討論:失效的庫、有問題的依賴、更新被錯(cuò)誤實(shí)施或是執(zhí)行順序有誤,甚至可能根本沒執(zhí)行以及無法重現(xiàn)的錯(cuò)誤等。估計(jì)讀者也遇到過這些問題。Docker讓用戶可以清晰地說明(即便是以腳本的形式)在一個(gè)屬性已知的系統(tǒng)上調(diào)試問題的步驟,錯(cuò)誤和環(huán)境重現(xiàn)變得更簡單,而且通常與所提供的宿主機(jī)環(huán)境是分離的。
8、文檔化軟件依賴及接觸點(diǎn)
通過使用結(jié)構(gòu)化方式構(gòu)建鏡像,為遷移到不同環(huán)境做好準(zhǔn)備,Docker 強(qiáng)制用戶從一個(gè)基本出發(fā)點(diǎn)開始明確地記錄軟件依賴。即使用戶不打算在所有地方都使用Docker,這種文檔記錄也有助于在其他地方安裝軟件。
9、啟用持續(xù)交付
持續(xù)交付(continuous delivery,CD)是一個(gè)基于流水線的軟件交付范型,該流水線通過一個(gè)自動(dòng)化(或半自動(dòng)化)流程在每次變動(dòng)時(shí)重新構(gòu)建系統(tǒng)然后交付到生產(chǎn)環(huán)境中。
因?yàn)橛脩艨梢愿鼫?zhǔn)確地控制構(gòu)建環(huán)境的狀態(tài),Docker 構(gòu)建比傳統(tǒng)軟件構(gòu)建方法更具有可重現(xiàn)性和可復(fù)制性。使持續(xù)交付的實(shí)現(xiàn)變得更容易。通過實(shí)現(xiàn)一個(gè)以Docker為中心的可重現(xiàn)的構(gòu)建過程,標(biāo)準(zhǔn)的持續(xù)交付技術(shù),如藍(lán)/綠部署(blue/green deployment,在生產(chǎn)環(huán)境中維護(hù)“生產(chǎn)”和“最新”部署)和鳳凰部署(phoenix deployment,每次發(fā)布時(shí)都重新構(gòu)建整個(gè)系統(tǒng))變得很簡單。
Docker的常用用途有哪些?
1、簡化配置
這是Docker初始目的,虛擬機(jī)VM最大的好處是基于你的應(yīng)用配置能夠無縫運(yùn)行在任何平臺(tái)上。Docker提供同樣類似VM的能力,但是沒有任何副作用,它能讓你將環(huán)境和配置放入代碼然后部署,同樣的Docker配置能夠在各種環(huán)境中使用,這實(shí)際是將應(yīng)用環(huán)境和底層環(huán)境實(shí)現(xiàn)了解耦。
2、代碼管道化管理
能夠?qū)Υa以流式pipeline管道化進(jìn)行管理,從開發(fā)者的機(jī)器到生產(chǎn)環(huán)境機(jī)器這個(gè)流程中都能有效管理。因?yàn)樵谶@個(gè)流程中會(huì)有各種不同的環(huán)境,每個(gè)都可能有微小的區(qū)別,Docker提供了跨越這些異構(gòu)環(huán)境以一致性的微環(huán)境,從開發(fā)到部署實(shí)現(xiàn)流暢發(fā)布。
3、開發(fā)人員的生產(chǎn)化
在一個(gè)開發(fā)環(huán)境,我們希望我們的開發(fā)環(huán)境能更加接近于生產(chǎn)環(huán)境,我們會(huì)讓每個(gè)服務(wù)運(yùn)行在自己的VM中,這樣能模擬生產(chǎn)環(huán)境,比如有時(shí)我們并不總是需要跨越網(wǎng)絡(luò)連接,這樣我們可以將多個(gè)Docker裝載一系列服務(wù)運(yùn)行在單機(jī)上最大程度模擬生產(chǎn)分布式部署的環(huán)境。
4、應(yīng)用隔離
有很多理由你需要在一臺(tái)機(jī)器上運(yùn)行多個(gè)應(yīng)用,這就需要將原來鐵板一塊monolithic的應(yīng)用切分為很多微服務(wù)。實(shí)現(xiàn)應(yīng)用之間的解耦,將多個(gè)應(yīng)用服務(wù)部署在多個(gè)Docker中能輕松達(dá)到這個(gè)目的。
5、服務(wù)合并
使用Docker也能合并多個(gè)服務(wù)以降低費(fèi)用,不多的操作系統(tǒng)內(nèi)存占用,跨實(shí)例共享多個(gè)空閑的內(nèi)存,這些技術(shù)Docker能以更加緊密資源提供更有效的服務(wù)合并。
6、多租戶
Docker能夠作為云計(jì)算的多租戶容器,使用Docker能容易為每個(gè)租戶創(chuàng)建運(yùn)行應(yīng)該多個(gè)實(shí)例,這得益其靈活的快速環(huán)境以及有效diff命令。
快速部署
Docker通過創(chuàng)建進(jìn)程的容器,不必重新啟動(dòng)操作系統(tǒng),幾秒內(nèi)能關(guān)閉,你可以在數(shù)據(jù)中心創(chuàng)建或銷毀資源,不用擔(dān)心額外消耗。典型的數(shù)據(jù)中心利用率是30%,通過更積極的資源分配,以低成本方式對(duì)一個(gè)新的實(shí)例實(shí)現(xiàn)一個(gè)更聚合的資源分配,我們很容易超過這個(gè)利用率,大大提高數(shù)據(jù)中心的利用效率。
以上就是小編的分享,希望可以幫助到大家。