來(lái)源:派臣科技|時(shí)間:2020-03-28|瀏覽:次
如果您是一名開(kāi)發(fā)人員,或者只是一個(gè)沉浸在IT世界中的人,那么您可能聽(tīng)說(shuō)過(guò)Docker。
Docker是一個(gè)工具,它通過(guò)更容易地使用容器來(lái)幫助創(chuàng)建、部署和運(yùn)行應(yīng)用程序。此工具非常強(qiáng)大,因?yàn)樗试S開(kāi)發(fā)人員將應(yīng)用程序與所需的所有部分(如庫(kù)和其他依賴(lài)項(xiàng))打包在一起,并將其作為單個(gè)包部署。
因此,開(kāi)發(fā)人員可以放心,應(yīng)用程序?qū)⒃谌魏纹渌鸏inux機(jī)器上運(yùn)行,無(wú)論該機(jī)器可能有什么自定義設(shè)置。
所以,看看下面,了解更多關(guān)于Docker的信息。
記住,不管你是為財(cái)務(wù)、旅行等創(chuàng)建一個(gè)應(yīng)用程序,還是為管理WordPress站點(diǎn)或類(lèi)似的東西創(chuàng)建一個(gè)應(yīng)用程序,你肯定需要強(qiáng)大的工具。
當(dāng)然,Docker就是其中一種工具。
誰(shuí)使用碼頭工人?
Docker是一個(gè)為開(kāi)發(fā)人員和系統(tǒng)管理員設(shè)計(jì)的工具。這使得它成為許多DevOps(開(kāi)發(fā)人員和操作)工具鏈中相當(dāng)重要的一部分。
由于Docker,開(kāi)發(fā)人員可以專(zhuān)注于編寫(xiě)代碼,而不必?fù)?dān)心最終將在其上運(yùn)行的系統(tǒng)。
這個(gè)工具還允許他們優(yōu)勢(shì)時(shí)使用一個(gè)時(shí)間的成千上萬(wàn)的項(xiàng)目已經(jīng)設(shè)計(jì)運(yùn)行在一個(gè)碼頭工人容器作為應(yīng)用程序的一部分,這是在其他方面,碼頭工人容器托管的原因之一是一個(gè)熱門(mén)話(huà)題。
當(dāng)涉及到操作人員時(shí),該工具提供了靈活性,并可能減少所需的系統(tǒng)數(shù)量,因?yàn)樗加玫目臻g較小,開(kāi)銷(xiāo)也較低。
碼頭工人的好處
容器的工作方式在某種程度上類(lèi)似于vm的工作方式。但是,讓我們以更具體的方式來(lái)看待它。
容器將單個(gè)應(yīng)用程序及其依賴(lài)項(xiàng)(應(yīng)用程序運(yùn)行所需的所有外部軟件庫(kù))與底層操作系統(tǒng)和其他容器隔離開(kāi)來(lái)。
所有的容器化應(yīng)用程序都共享一個(gè)單一的、通用的操作系統(tǒng)(Linux或Windows),但是它們彼此隔離,并且與整個(gè)系統(tǒng)隔離。
現(xiàn)在,看看Docker和容器的一些主要優(yōu)點(diǎn)。
- Docker允許更快的軟件交付周期
企業(yè)軟件必須快速響應(yīng)變化的條件。換句話(huà)說(shuō),滿(mǎn)足需求的簡(jiǎn)單擴(kuò)展和根據(jù)業(yè)務(wù)需求添加新特性的簡(jiǎn)單更新都是必要的。
Docker容器使快速地將具有新業(yè)務(wù)功能的新版本軟件投入生產(chǎn)變得很容易——如果需要,還可以快速地返回到以前的版本。它們還使實(shí)施藍(lán)/綠部署等戰(zhàn)略變得更容易。
- Docker能夠充分利用系統(tǒng)資源
容器化應(yīng)用程序比虛擬機(jī)占用的內(nèi)存少得多。它們的啟動(dòng)和停止速度更快,并且可以在主機(jī)硬件上進(jìn)行更密集的打包。因此,所有這些都有助于減少花費(fèi)。
節(jié)省的成本將根據(jù)所使用的應(yīng)用程序和它們的資源密集程度而有所不同,但是容器總是比vm更有效。
還可以節(jié)省軟件許可證的成本,因?yàn)檫\(yùn)行相同的工作負(fù)載需要更少的操作系統(tǒng)實(shí)例。
- Docker允許應(yīng)用程序的可移植性
在哪里運(yùn)行企業(yè)應(yīng)用程序非常重要。如果您在防火墻后運(yùn)行它,這很重要,因?yàn)槟M谀母浇3忠磺邪踩?/p>
但是,為了方便公共訪(fǎng)問(wèn)和資源的高彈性,也可以將其放在公共云中。
Docker容器封裝了應(yīng)用程序運(yùn)行所需的所有東西(并且只封裝那些東西),它們?cè)试S應(yīng)用程序在不同環(huán)境之間輕松切換。
安裝了Docker運(yùn)行時(shí)的任何主機(jī)——開(kāi)發(fā)人員的筆記本電腦或公共云實(shí)例——都可以運(yùn)行Docker容器。
-微服務(wù)的Docker
由于Docker容器是輕量級(jí)的、可移植的和自包含的,所以更容易按照前瞻性的思路構(gòu)建軟件,這樣您就不必試圖用過(guò)去的開(kāi)發(fā)方法來(lái)解決未來(lái)的問(wèn)題。
容器簡(jiǎn)化的軟件模式之一是微服務(wù),其中的應(yīng)用程序由許多松散耦合的組件組成。
通過(guò)將傳統(tǒng)的單塊應(yīng)用程序分解為單獨(dú)的服務(wù),微服務(wù)允許對(duì)業(yè)務(wù)線(xiàn)應(yīng)用程序的不同部分分別進(jìn)行伸縮、修改和服務(wù)——由單獨(dú)的團(tuán)隊(duì)執(zhí)行,如果滿(mǎn)足業(yè)務(wù)需求,還可以在單獨(dú)的時(shí)間軸上執(zhí)行。
容器不需要實(shí)現(xiàn)微服務(wù),但是它們通常非常適合微服務(wù)方法和敏捷開(kāi)發(fā)過(guò)程。
Docker的缺點(diǎn)(Docker不能做的事情)
現(xiàn)在您已經(jīng)了解了Docker容器的更突出的優(yōu)點(diǎn),讓我們看看這些容器不能做什么。
- Docker不能解決安全問(wèn)題
默認(rèn)情況下,容器中的軟件可能比在裸機(jī)上運(yùn)行的軟件更安全,但這有點(diǎn)荒謬。很明顯,一個(gè)所有的門(mén)都鎖著的房子比一個(gè)所有的門(mén)都開(kāi)著的房子要安全得多,對(duì)吧?
這并不能說(shuō)明附近的情況,也不能說(shuō)明小偷會(huì)尋找的貴重物品是否可見(jiàn),也不能說(shuō)明住在那里的人的日常生活,等等。
容器可以為應(yīng)用程序添加一層安全層,但僅作為在上下文中保護(hù)應(yīng)用程序的一般程序的一部分。記住那件事!
- Docker不能代替虛擬機(jī)
有一個(gè)巨大的誤解,認(rèn)為容器實(shí)際上使虛擬機(jī)過(guò)時(shí)了。
許多過(guò)去在VM中運(yùn)行的應(yīng)用程序可以移動(dòng)到一個(gè)容器中,但這并不意味著它們可以或應(yīng)該全部移動(dòng)。
例如,如果您所在的行業(yè)有嚴(yán)格的監(jiān)管要求,您可能無(wú)法將容器替換為vm,因?yàn)関m比容器提供了更多的隔離。
- Docker不能奇跡般地把應(yīng)用轉(zhuǎn)換成微服務(wù)
如果您包含一個(gè)現(xiàn)有的應(yīng)用程序,那么可以減少它的資源消耗并使其更容易部署。但這并不一定會(huì)改變應(yīng)用程序的設(shè)計(jì),或者它與其他應(yīng)用程序的交互方式。
這些好處只是開(kāi)發(fā)人員努力工作的結(jié)果,而不是強(qiáng)制要求將所有東西都移到容器中。將一個(gè)老式的單片或soa風(fēng)格的應(yīng)用程序放入容器中,您最終將得到一個(gè)容器中的舊應(yīng)用程序。
這并沒(méi)有使它對(duì)你的工作更有用。它實(shí)際上使它變得不那么有用了。
最終的想法
可以肯定地說(shuō),企業(yè)開(kāi)發(fā)工作是出了名的墨守成規(guī),在面對(duì)變化時(shí)反應(yīng)遲鈍。
在企業(yè)級(jí)軟件上工作的開(kāi)發(fā)人員必須一直處理這些約束。IT部門(mén)對(duì)他們施加了一些限制,他們的公司也提出了一些要求。
Docker和容器為開(kāi)發(fā)人員提供了更多需要的自由。但與此同時(shí),它們也為開(kāi)發(fā)人員提供了構(gòu)建業(yè)務(wù)應(yīng)用程序的新方法,這些業(yè)務(wù)應(yīng)用程序可以快速響應(yīng)注定要改變的業(yè)務(wù)條件。