精品久久久久久久久水蜜桃|丁香花五月|新中文字幕麻豆视频|美女下面粉嫩粉嫩冒白浆高清|日本黄h兄妹h动漫一区二区三区|床片激情免费视频|羞羞动漫在线入口免费阅读

docker火了這么久 docker是干什么的

引言早在2013年的時候,docker就已經(jīng)發(fā)行,然而那會還是很少人了解docker 。一直到2014年,Martin Fowler提出了微服務(wù)的概念,兩個不相干的技術(shù)終于走在了一起,創(chuàng)造了今天的輝煌!
近幾年來,很多互聯(lián)網(wǎng)關(guān)系開始跟風(fēng),構(gòu)建docker+微服務(wù)的架構(gòu)體系 。然而 , 根據(jù)筆者觀察發(fā)現(xiàn),有些童鞋在使用過程中,只是會用,而根本不了解為什么使用docker , 反正對他們來說,公司讓用就用!而某些公司呢,雖然用上了docker,然而運維方式并沒有發(fā)生改變,白白浪費了docker的大好性能!
因此,才有了本文的誕生 。本文不會教你怎么去用什么docker的api , 畢竟官網(wǎng)document很全面 , 而是去講解docker的優(yōu)點,進而說明為什么適合微服務(wù)的架構(gòu)!
正文這里必須要先說明物理機、虛擬機、容器三者的優(yōu)缺點 。筆者不想去列一堆的概念 , 直接借用知乎的一個回答,回答地址為:
https://www.zhihu.com/question/48174633/answer/229253704
這里借用一下這位大神的三張圖,他的回答就三張圖!
基本概念
所謂的物理機就是下面這樣的別墅

docker火了這么久 docker是干什么的

文章插圖

那么虛擬機機就是下面這樣的套房

docker火了這么久 docker是干什么的

文章插圖

最后就是我們的容器,就是下面這樣的膠囊公寓

docker火了這么久 docker是干什么的

文章插圖

那么,專業(yè)的說法就是,容器是一種輕量級、可移植、自包含的軟件打包技術(shù),使應(yīng)用程序可以在幾乎任何地方以相同的方式運行 。容器之間是共享同一套操作系統(tǒng)資源的,由于容器是共享主操作系統(tǒng)的內(nèi)核,因此就無法在服務(wù)器上運行與主服務(wù)器不同的操作系統(tǒng),也就是說不能再Linux的服務(wù)器上運行Windows 。就如上面哪個圖一樣,每個膠囊容器是公用一個廁所,廚房,每個膠囊內(nèi)無法再構(gòu)建出自己的廁所和廚房!
容器的優(yōu)勢
隔離強
過去:曾記得12年那會,部門要上一個項目 。那會 , 我是這么干的 。直接去線上服務(wù)器,拷貝一個tomcat,然后改端口號,然后部署應(yīng)用到webapps文件夾下 , 重啟就好 。而且我可以摸著良心說 , 現(xiàn)在還有很多傳統(tǒng)企業(yè)是這么做的 。
那么這么做的缺點?
很明顯,應(yīng)用之間相互影響 。一個應(yīng)用出現(xiàn)問題 , CPU100%了,這個服務(wù)器上的其他應(yīng)用一起涼涼 。一個大型應(yīng)用拆分為幾十個微服務(wù),分別交由不同的團隊開發(fā) , 不同團隊之間水平參差不齊 。如果還采用這種部署方式,你的應(yīng)用和某個坑爹團隊的應(yīng)用部署在了同一臺服務(wù)器上,至于結(jié)果 , 我相信你懂的 。
現(xiàn)在:用上了docker容器后,將Docker可以將我們的應(yīng)用程序打包封裝到一個容器中,該容器包含了應(yīng)用程序的代碼、運行環(huán)境、依賴庫、配置文件等必需的資源 。容器之間達到進程級別的隔離 , 在容器中的操作,不會影響道宿主機和其他容器,這樣就不會出現(xiàn)應(yīng)用之間相互影響的情形!
可移植性
過去:曾幾何時我們和測試MM之間聊天內(nèi)容是這樣的
開發(fā):"你去測試環(huán)境上,按照開發(fā)環(huán)境一樣,再去搭三套一樣的測試環(huán)境!" 測試:"我….." 幾個小時過去了… 測試:"你幫我看看,為什么啟動報錯 , 是不是漏配了什么參數(shù)?" 開發(fā):"我…."于是接下來幾個小時就這么愉快的和測試mm一起聊天中過去了??!? ,我相信有些公司是為了解決開發(fā)的單身問題,才不使用docker,用心良苦!
然而 , 和運維GG之間聊天一般是這樣的
運維:"開發(fā)這群腦殘,發(fā)布的新war包,又把生產(chǎn)搞掛了!" 開發(fā):"這幫運維傻叉么,我本地好好的,怎么一上生產(chǎn)就不行了!" …于是接下來的幾個小時 , 就在和運維之間的撕逼中過去了!嗯,最終苦的是用戶?。?
現(xiàn)在:自從用上docker容器后 , 可以實現(xiàn)開發(fā)、測試和生產(chǎn)環(huán)境的統(tǒng)一化和標準化 。鏡像作為標準的交付件,可在開發(fā)、測試和生產(chǎn)環(huán)境上以容器來運行,最終實現(xiàn)三套環(huán)境上的應(yīng)用以及運行所依賴內(nèi)容的完全一致 。
在現(xiàn)在微服務(wù)的架構(gòu)中 , 一個應(yīng)用拆成幾十個微服務(wù),每個微服務(wù)都對應(yīng)有開發(fā)、測試、生產(chǎn)三套環(huán)境需要搭建 。自己算算,如果采用傳統(tǒng)的部署方式,有多少環(huán)境需要部署 。曾聽聞某公司在新建一個項目的時候 , 要花整整一個禮拜來搭建環(huán)境,簡直是慘不忍睹!
什么,你和我說,你們用上了docker , 卻還存在這些問題?
筆者曾見過某些公司是這么用docker的 。確實虛擬化出容器了 , 然后在容器上建立ssh server 。接下來就厲害了,部署方式完全沒變,直接連上容器,一切部署照舊!對此,我也是一言難盡??!你脷J饈歉斕即畹膁ocker么?
輕量和高效
過去:在2016年的時候 , 那會在另一家大廠工作 。這家稍微規(guī)范一點了,一個應(yīng)用部署在一個虛擬機上!當時最大的體會就是一個,虛擬機非常重,構(gòu)建速度慢,且占用資源多,一臺物理機上只能起十來個虛擬機!
現(xiàn)在:
和虛擬機相比 , 容器僅需要封裝應(yīng)用和應(yīng)用需要的依賴文件,實現(xiàn)輕量的應(yīng)用運行環(huán)境,且擁有比虛擬機更高的硬件資源利用率 。在微服務(wù)架構(gòu)中 , 有些服務(wù)負載壓力大,需要以集群部署,可能要部署幾十臺機器上,對于某些中小型公司來說 , 使用虛擬機,代價太大 。如果用容器,同樣的物理機則能支持上千個容器,對中小型公司來說,省錢!
筆者注:筆者一直覺得這個特性只是一個障眼法 。
比如 , 你說容器啟動速度快?難道你工作中吃飽了撐著沒事干,一直重啟虛擬機么?
你說虛擬機消耗資源多?絕大部分公司的服務(wù)器資源利用率應(yīng)該都不到 50%,大量的CPU、內(nèi)存、本地磁盤都是常年浪費的,所以 VM 的額外開銷不過是浪費了原本就在浪費的資源罷了 。所以筆者認為,對于傳統(tǒng)應(yīng)用來說,使用和不使用Docker可能并不能直接給企業(yè)帶來好處,相反使用中遇到了問題肯定會給企業(yè)帶來麻煩,對于傳統(tǒng)企業(yè)來說,不要盲目跟風(fēng),VM虛擬機其實夠用了! 。
總結(jié)
【docker火了這么久 docker是干什么的】在技術(shù)演進中,docker只是趨勢,并不是結(jié)果 。相信在未來,一定有更高大上的部署架構(gòu)出現(xiàn)!