千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術(shù)干貨  > 什么是Docker

什么是Docker

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-12-02 13:54:02 1701496442

什么是Docker?Docker是一個開源項目,誕生于2013年初,最初是dotCloud公司(后改名為Docker Inc)內(nèi)部的一個開源的PaaS服務(wù)的業(yè)余項目。其基于谷歌公司推出的Go語言進行開發(fā)實現(xiàn),后加入Linux基金會,遵從Apache 2.0協(xié)議,項目代碼在GitHub上進行維護。

Docker是基于Linux內(nèi)核的cgroup、namespace以及AUFS類的UnionFS等技術(shù),對進程進行封裝隔離,屬于操作系統(tǒng)層面的虛擬化技術(shù)。由于隔離的進程獨立于宿主和其他的隔離的進程,因此也稱其為容器。

Docker最初的實現(xiàn)是基于LXC(Linux Containers)。LXC是Linux原生支持的容器技術(shù),可以提供輕量級的虛擬化。可以說Docker就是基于LXC發(fā)展起來的,提供LXC的高級封裝和標準的配置方法。在LXC的基礎(chǔ)之上,Docker進行了進一步的封裝,從文件系統(tǒng)、網(wǎng)絡(luò)互聯(lián)到進程隔離等待,極大地簡化了容器的創(chuàng)建和維護,使得Docker技術(shù)比虛擬機技術(shù)更為輕便、快捷。

從Docker 0.7以后開始去除了LXC,轉(zhuǎn)而使用自行開發(fā)的libcontainer;從Docker 1.11開始,則進一步演進為使用runC和containerd。

Docker的主要目標是“Build、Ship and Run Any App、Anywhere”,即通過對應(yīng)用組件的封裝(Packaging)、分發(fā)(Distribution)、部署(Deployment)、運行(Runtime)等生命周期的管理,達到應(yīng)用組件級別的“一次封裝,到處運行”(Build once,Run anywhere)。這里的應(yīng)用組件,既可以是一個Web應(yīng)用,也可以是一套數(shù)據(jù)庫服務(wù),甚至是一個操作系統(tǒng)。

將應(yīng)用運行在Docker容器上,可以實現(xiàn)跨平臺、跨服務(wù)器,只需一次配置準備好相關(guān)的應(yīng)用環(huán)境,即可實現(xiàn)到處運行,保證研發(fā)和生產(chǎn)環(huán)境的一致性,解決了應(yīng)用和運行環(huán)境的兼容性問題,從而極大地提升了部署效率,減少故障的可能性。

Docker與虛擬機有著類似的資源隔離和分配的特點,但不同的架構(gòu)方法使Docker能夠更加便攜、高效(見圖1)。

圖1 VM與Docker架構(gòu)比較

傳統(tǒng)的虛擬機架構(gòu)是:物理機→宿主機操作系統(tǒng)→Hypervisor支持→虛擬機操作系統(tǒng)→應(yīng)用程序。虛擬機是在宿主機上基于Hypervisor虛擬出一套操作系統(tǒng)所需的硬件設(shè)備,并在這些虛擬硬件上安裝操作系統(tǒng)Guest OS,運行不同的應(yīng)用程序,應(yīng)用之間實現(xiàn)相互獨立、資源隔離。

但由于需要Hypervisor來創(chuàng)建虛擬機,且每個虛擬機里需要完整地運行一套操作系統(tǒng)Guest OS,因此會帶來很多額外資源的開銷。

Docker的架構(gòu)是:物理機→宿主機操作系統(tǒng)→Docker引擎→應(yīng)用程序。Docker容器中沒有Hypervisor這一層,雖然它需要在宿主機中運行Docker Engine,但原理卻完全不同于Hypervisor,并沒有虛擬出硬件設(shè)備,更沒有獨立部署全套的操作系統(tǒng)Guest OS。

Docker容器是使用Docker Engine而不是管理程序來執(zhí)行,因此容器比虛擬機小,并且由于主機內(nèi)核的共享,可以更快地啟動,具有更好的性能、更少的隔離和更好的兼容性。

Docker容器能夠共享一個內(nèi)核并共享應(yīng)用程序庫,因此容器比虛擬機具有更低的系統(tǒng)開銷,只要用戶愿意使用單一平臺來提供共享的操作系統(tǒng),容器可以更快、使用資源可以更少。

虛擬機可能需要幾分鐘才能創(chuàng)建并啟動,而只需幾秒鐘即可創(chuàng)建并啟動一個容器。與在虛擬機中運行應(yīng)用程序相比,容器中包含的應(yīng)用程序提供了卓越的性能。

tags: IT培訓
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學 138****2860 剛剛成功領(lǐng)取
王同學 131****2015 剛剛成功領(lǐng)取
張同學 133****4652 剛剛成功領(lǐng)取
李同學 135****8607 剛剛成功領(lǐng)取
楊同學 132****5667 剛剛成功領(lǐng)取
岳同學 134****6652 剛剛成功領(lǐng)取
梁同學 157****2950 剛剛成功領(lǐng)取
劉同學 189****1015 剛剛成功領(lǐng)取
張同學 155****4678 剛剛成功領(lǐng)取
鄒同學 139****2907 剛剛成功領(lǐng)取
董同學 138****2867 剛剛成功領(lǐng)取
周同學 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
嵌入式培訓課程:探索技術(shù)的無限可能

近年來,嵌入式系統(tǒng)的廣泛應(yīng)用已經(jīng)深刻改變了我們的生活方式。從智能手機到智能家居,從汽車到醫(yī)療設(shè)備,嵌入式技術(shù)已經(jīng)成為現(xiàn)代社會不可或缺的...詳情>>

2023-12-12 11:02:35
嵌入式開發(fā):Linux網(wǎng)絡(luò)編程的探索與實踐

在當今的科技世界中,嵌入式系統(tǒng)已經(jīng)滲透到我們生活的方方面面,從智能手機、電視、汽車到醫(yī)療設(shè)備等。而在這些設(shè)備中,Linux網(wǎng)絡(luò)編程扮演著至...詳情>>

2023-12-12 09:55:55
Java游戲項目開發(fā):技術(shù)概覽與實踐

在數(shù)字化世界中,游戲已經(jīng)成為了人們休閑娛樂的重要方式之一。隨著科技的不斷進步,游戲開發(fā)行業(yè)也在不斷發(fā)展,而Java作為一門廣泛使用的編程語...詳情>>

2023-12-12 08:49:15
Web前端的基石:HTML

在數(shù)字化的時代,網(wǎng)頁設(shè)計已經(jīng)成為了一個重要的領(lǐng)域。而在這個領(lǐng)域中,HTML(HyperTextMarkupLanguage)無疑是最基礎(chǔ)、最重要的一環(huán)。它是構(gòu)建...詳情>>

2023-12-12 08:15:55
嵌入式開發(fā):內(nèi)存分配的方式

嵌入式系統(tǒng)開發(fā)中,內(nèi)存分配是一個至關(guān)重要的話題。嵌入式系統(tǒng)通常具有有限的內(nèi)存資源,因此合理的內(nèi)存分配方式對系統(tǒng)的性能和穩(wěn)定性至關(guān)重要。...詳情>>

2023-12-12 06:35:55
快速通道
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
中文字幕日产乱码乱偷在线 | 亚洲性日韩精品一区二区 | 日韩中文字幕v亚洲中文字幕 | 欧美一区二区日韩国产 | 日本在线一区二区三区欧美 | 欧美一区二区狠狠 |