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