Docker的簡(jiǎn)介

      網(wǎng)友投稿 659 2025-03-31

      一款產(chǎn)品從開(kāi)發(fā)到上線(xiàn),從操作系統(tǒng),到運(yùn)行環(huán)境,再到應(yīng)用配置。作為開(kāi)發(fā)+運(yùn)維之間的協(xié)作我們需要關(guān)心很多東西,這也是很多互聯(lián)網(wǎng)公司都不得不面對(duì)的問(wèn)題,特別是各種版本的迭代之后,不同版本環(huán)境的兼容,對(duì)運(yùn)維人員都是考驗(yàn)

      問(wèn)題:為什么會(huì)有docker出現(xiàn)

      docker之所以發(fā)展如此迅速,也是因?yàn)樗鼘?duì)此給出了一個(gè)標(biāo)準(zhǔn)化的解決方案。

      環(huán)境配置如此麻煩,換一臺(tái)機(jī)器,就要重來(lái)一次,費(fèi)力費(fèi)時(shí)。很多人想到,能不能從根本上解決問(wèn)題,軟件可以帶環(huán)境安裝?也就是說(shuō),安裝的時(shí)候,把原始環(huán)境一模一樣地復(fù)制過(guò)來(lái)。開(kāi)發(fā)人員利用 Docker 可以消除協(xié)作編碼時(shí)“在我的機(jī)器上可正常工作”的問(wèn)題。

      之前在服務(wù)器配置一個(gè)應(yīng)用的運(yùn)行環(huán)境,要安裝各種軟件,就拿尚硅谷電商項(xiàng)目的環(huán)境來(lái)說(shuō)吧,Java/Tomcat/MySQL/JDBC驅(qū)動(dòng)包等。安裝和配置這些東西有多麻煩就不說(shuō)了,它還不能跨平臺(tái)。假如我們是在 Windows 上安裝的這些環(huán)境,到了 Linux 又得重新裝。況且就算不跨操作系統(tǒng),換另一臺(tái)同樣操作系統(tǒng)的服務(wù)器,要移植應(yīng)用也是非常麻煩的。

      Docker的簡(jiǎn)介

      傳統(tǒng)上認(rèn)為,軟件編碼開(kāi)發(fā)/測(cè)試結(jié)束后,所產(chǎn)出的成果即是程序或是能夠編譯執(zhí)行的二進(jìn)制字節(jié)碼等(java為例)。而為了讓這些程序可以順利執(zhí)行,開(kāi)發(fā)團(tuán)隊(duì)也得準(zhǔn)備完整的部署文件,讓運(yùn)維團(tuán)隊(duì)得以部署應(yīng)用程式,開(kāi)發(fā)需要清楚的告訴運(yùn)維部署團(tuán)隊(duì),用的全部配置文件+所有軟件環(huán)境。不過(guò),即便如此,仍然常常發(fā)生部署失敗的狀況。

      Docker鏡像的設(shè)計(jì),使得Docker得以打破過(guò)去「程序即應(yīng)用」的觀念。透過(guò)鏡像(images)將作業(yè)系統(tǒng)核心除外,運(yùn)作應(yīng)用程式所需要的系統(tǒng)環(huán)境,由下而上打包,達(dá)到應(yīng)用程式跨平臺(tái)間的無(wú)縫接軌運(yùn)作。

      docker理念

      Docker是基于Go語(yǔ)言實(shí)現(xiàn)的云開(kāi)源項(xiàng)目。

      Docker的主要目標(biāo)是“Build,Ship and Run Any App,Anywhere”,也就是通過(guò)對(duì)應(yīng)用組件的封裝、分發(fā)、部署、運(yùn)行等生命周期的管理,使用戶(hù)的APP(可以是一個(gè)WEB應(yīng)用或數(shù)據(jù)庫(kù)應(yīng)用等等)及其運(yùn)行環(huán)境能夠做到“一次封裝,到處運(yùn)行”。

      Linux 容器技術(shù)的出現(xiàn)就解決了這樣一個(gè)問(wèn)題,而 Docker 就是在它的基礎(chǔ)上發(fā)展過(guò)來(lái)的。將應(yīng)用運(yùn)行在 Docker 容器上面,而 Docker 容器在任何操作系統(tǒng)上都是一致的,這就實(shí)現(xiàn)了跨平臺(tái)、跨服務(wù)器。只需要一次配置好環(huán)境,換到別的機(jī)子上就可以一鍵部署好,大大簡(jiǎn)化了操作

      一句話(huà)

      解決了運(yùn)行環(huán)境和配置問(wèn)題軟件容器,方便做持續(xù)集成并有助于整體發(fā)布的容器虛擬化技術(shù)。

      之前的虛擬機(jī)技術(shù)

      虛擬機(jī)(virtual machine)就是帶環(huán)境安裝的一種解決方案。

      它可以在一種操作系統(tǒng)里面運(yùn)行另一種操作系統(tǒng),比如在Windows 系統(tǒng)里面運(yùn)行Linux 系統(tǒng)。應(yīng)用程序?qū)Υ撕翢o(wú)感知,因?yàn)樘摂M機(jī)看上去跟真實(shí)系統(tǒng)一模一樣,而對(duì)于底層系統(tǒng)來(lái)說(shuō),虛擬機(jī)就是一個(gè)普通文件,不需要了就刪掉,對(duì)其他部分毫無(wú)影響。這類(lèi)虛擬機(jī)完美的運(yùn)行了另一套系統(tǒng),能夠使應(yīng)用程序,操作系統(tǒng)和硬件三者之間的邏輯不變。

      虛擬機(jī)的缺點(diǎn):

      1 資源占用多 2 冗余步驟多 3 啟動(dòng)慢

      容器虛擬化技術(shù)

      由于前面虛擬機(jī)存在這些缺點(diǎn),Linux 發(fā)展出了另一種虛擬化技術(shù):Linux 容器(Linux Containers,縮寫(xiě)為 LXC)。

      Linux 容器不是模擬一個(gè)完整的操作系統(tǒng),而是對(duì)進(jìn)程進(jìn)行隔離。有了容器,就可以將軟件運(yùn)行所需的所有資源打包到一個(gè)隔離的容器中。容器與虛擬機(jī)不同,不需要捆綁一整套操作系統(tǒng),只需要軟件工作所需的庫(kù)資源和設(shè)置。系統(tǒng)因此而變得高效輕量并保證部署在任何環(huán)境中的軟件都能始終如一地運(yùn)行。

      比較了 Docker 和傳統(tǒng)虛擬化方式的不同之處:

      傳統(tǒng)虛擬機(jī)技術(shù)是虛擬出一套硬件后,在其上運(yùn)行一個(gè)完整操作系統(tǒng),在該系統(tǒng)上再運(yùn)行所需應(yīng)用進(jìn)程;

      而容器內(nèi)的應(yīng)用進(jìn)程直接運(yùn)行于宿主的內(nèi)核,容器內(nèi)沒(méi)有自己的內(nèi)核,而且也沒(méi)有進(jìn)行硬件虛擬。因此容器要比傳統(tǒng)虛擬機(jī)更為輕便。

      每個(gè)容器之間互相隔離,每個(gè)容器有自己的文件系統(tǒng) ,容器之間進(jìn)程不會(huì)相互影響,能區(qū)分計(jì)算資源。

      開(kāi)發(fā)/運(yùn)維(DevOps)

      一次構(gòu)建、隨處運(yùn)行

      更快速的應(yīng)用交付和部署

      傳統(tǒng)的應(yīng)用開(kāi)發(fā)完成后,需要提供一堆安裝程序和配置說(shuō)明文檔,安裝部署后需根據(jù)配置文檔進(jìn)行繁雜的配置才能正常運(yùn)行。Docker化之后只需要交付少量容器鏡像文件,在正式生產(chǎn)環(huán)境加載鏡像并運(yùn)行即可,應(yīng)用安裝配置在鏡像里已經(jīng)內(nèi)置好,大大節(jié)省部署配置和測(cè)試驗(yàn)證時(shí)間。

      更便捷的升級(jí)和擴(kuò)縮容

      隨著微服務(wù)架構(gòu)和Docker的發(fā)展,大量的應(yīng)用會(huì)通過(guò)微服務(wù)方式架構(gòu),應(yīng)用的開(kāi)發(fā)構(gòu)建將變成搭樂(lè)高積木一樣,每個(gè)Docker容器將變成一塊“積木”,應(yīng)用的升級(jí)將變得非常容易。當(dāng)現(xiàn)有的容器不足以支撐業(yè)務(wù)處理時(shí),可通過(guò)鏡像運(yùn)行新的容器進(jìn)行快速擴(kuò)容,使應(yīng)用系統(tǒng)的擴(kuò)容從原先的天級(jí)變成分鐘級(jí)甚至秒級(jí)。

      更簡(jiǎn)單的系統(tǒng)運(yùn)維

      應(yīng)用容器化運(yùn)行后,生產(chǎn)環(huán)境運(yùn)行的應(yīng)用可與開(kāi)發(fā)、測(cè)試環(huán)境的應(yīng)用高度一致,容器會(huì)將應(yīng)用程序相關(guān)的環(huán)境和狀態(tài)完全封裝起來(lái),不會(huì)因?yàn)榈讓踊A(chǔ)架構(gòu)和操作系統(tǒng)的不一致性給應(yīng)用帶來(lái)影響,產(chǎn)生新的BUG。當(dāng)出現(xiàn)程序異常時(shí),也可以通過(guò)測(cè)試環(huán)境的相同容器進(jìn)行快速定位和修復(fù)。

      更高效的計(jì)算資源利用

      Docker是內(nèi)核級(jí)虛擬化,其不像傳統(tǒng)的虛擬化技術(shù)一樣需要額外的Hypervisor支持,所以在一臺(tái)物理機(jī)上可以運(yùn)行很多個(gè)容器實(shí)例,可大大提升物理服務(wù)器的CPU和內(nèi)存的利用率。

      企業(yè)級(jí)

      新浪

      美團(tuán)

      蘑菇街

      Docker Linux

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:WPS演示借助超鏈接實(shí)現(xiàn)類(lèi)似QQ空間相冊(cè)的圖片瀏覽方式
      下一篇:如何在excel最后加一列
      相關(guān)文章
      亚洲视频在线观看不卡| 亚洲av午夜福利精品一区人妖| 亚洲国产成人精品无码区在线观看| 亚洲第一黄片大全| 亚洲欧美日韩中文高清www777| 亚洲国产精品人久久电影| 亚洲国产福利精品一区二区| 亚洲xxxxxx| 国产亚洲精品bv在线观看| 99久久婷婷国产综合亚洲| 亚洲一级特黄特黄的大片| 四虎必出精品亚洲高清| 亚洲第一成年网站视频| 久久亚洲中文无码咪咪爱| 日产国产精品亚洲系列| 无码一区二区三区亚洲人妻| 日韩亚洲国产二区| 亚洲中久无码不卡永久在线观看| 亚洲区小说区图片区| 中文亚洲成a人片在线观看| 亚洲欧洲日产国码无码久久99| 国产亚洲一区二区手机在线观看| 国产亚洲综合网曝门系列| 亚洲人成亚洲精品| 亚洲成综合人影院在院播放| 2020国产精品亚洲综合网 | 亚洲精品无码久久久久牙蜜区| 亚洲av无码无线在线观看| 日本中文一区二区三区亚洲| 国产亚洲美女精品久久久| 久久精品国产亚洲麻豆| 日韩亚洲AV无码一区二区不卡| 亚洲美女大bbbbbbbbb| 亚洲综合偷自成人网第页色| 亚洲精品乱码久久久久久蜜桃图片| 激情小说亚洲图片| 国内精品久久久久久久亚洲| 亚洲Av无码精品色午夜| 亚洲最大在线观看| 亚洲欧美成aⅴ人在线观看| 亚洲国产专区一区|