Docker是什么?使用Docker的好处有哪些?
本文由小千帶大家了解Docker是什么,Docker和傳統(tǒng)虛擬化對比的區(qū)別,Docker架構(gòu)是怎樣的,Docker的作用以及使用Docker的好處有哪些?
Docker是什么?
1.1 什么是 Docker
docker是一個開源的軟件部署解決方案;
docker也是輕量級的應(yīng)用容器框架;
docker可以打包、發(fā)布、運行任何的應(yīng)用。
Docker 最初是 dotCloud 公司創(chuàng)始人 Solomon Hykes 在法國期間發(fā)起的一個公司內(nèi)部項目,它是基于 dotCloud 公司多年云服務(wù)技術(shù)的一次革新,并于 2013 年 3 月以 Apache 2.0 授權(quán)協(xié)議開源,主要項目代碼在 GitHub 上進(jìn)行維護(hù)。Docker 項目后來還加入了 Linux 基金會,并成立推動 開放容器聯(lián)盟(OCI)。
Docker 自開源后受到廣泛的關(guān)注和討論,至今其 GitHub 項目已經(jīng)超過 4 萬 6 千個星標(biāo)和一萬多個 fork。甚至由于 Docker 項目的火爆,在 2013 年底,dotCloud 公司決定改名為 Docker。Docker 最初是在 Ubuntu 12.04 上開發(fā)實現(xiàn)的;Red Hat 則從 RHEL 6.5 開始對 Docker 進(jìn)行支持;Google 也在其 PaaS 產(chǎn)品中廣泛應(yīng)用 Docker。
Docker 使用 Google 公司推出的 Go 語言 進(jìn)行開發(fā)實現(xiàn),基于 Linux 內(nèi)核的 cgroup,namespace,以及 AUFS 類的 Union FS 等技術(shù),對進(jìn)程進(jìn)行封裝隔離,屬于 操作系統(tǒng)層面的虛擬化技術(shù)。由于隔離的進(jìn)程獨立于宿主和其它的隔離的進(jìn)程,因此也稱其為容器。最初實現(xiàn)是基于 LXC,從 0.7 版本以后開始去除 LXC,轉(zhuǎn)而使用自行開發(fā)的 libcontainer,從 1.11 開始,則進(jìn)一步演進(jìn)為使用 runC 和 containerd。
Docker 在容器的基礎(chǔ)上,進(jìn)行了進(jìn)一步的封裝,從文件系統(tǒng)、網(wǎng)絡(luò)互聯(lián)到進(jìn)程隔離等等,極大的簡化了容器的創(chuàng)建和維護(hù)。使得 Docker 技術(shù)比虛擬機(jī)技術(shù)更為輕便、快捷。
1.2 Docker和傳統(tǒng)虛擬化對比
Docker 跟傳統(tǒng)的虛擬化方式相比具有眾多的優(yōu)勢。
Docker 在如下幾個方面具有較大的優(yōu)勢:
更快速的交付和部署
Docker在整個開發(fā)周期都可以完美的輔助你實現(xiàn)快速交付。Docker允許開發(fā)者在裝有應(yīng)用和服務(wù)本地容器做開發(fā)。可以直接集成到可持續(xù)開發(fā)流程中。
例如:開發(fā)者可以使用一個標(biāo)準(zhǔn)的鏡像來構(gòu)建一套開發(fā)容器,開發(fā)完成之后,運維人員可以直接使用這個容器來部署代碼。 Docker 可以快速創(chuàng)建容器,快速迭代應(yīng)用程序,并讓整個過程全程可見,使團(tuán)隊中的其他成員更容易理解應(yīng)用程序是如何創(chuàng)建和工作的。 Docker 容器很輕很快!容器的啟動時間是秒級的,大量地節(jié)約開發(fā)、測試、部署的時間。
高效的部署和擴(kuò)容
Docker 容器幾乎可以在任意的平臺上運行,包括物理機(jī)、虛擬機(jī)、公有云、私有云、個人電腦、服務(wù)器等。 這種兼容性可以讓用戶把一個應(yīng)用程序從一個平臺直接遷移到另外一個。
Docker的兼容性和輕量特性可以很輕松的實現(xiàn)負(fù)載的動態(tài)管理。你可以快速擴(kuò)容或方便的下線的你的應(yīng)用和服務(wù),這種速度趨近實時。
更高的資源利用率
Docker 對系統(tǒng)資源的利用率很高,一臺主機(jī)上可以同時運行數(shù)千個 Docker 容器。容器除了運行其中應(yīng)用外,基本不消耗額外的系統(tǒng)資源,使得應(yīng)用的性能很高,同時系統(tǒng)的開銷盡量小。傳統(tǒng)虛擬機(jī)方式運行 10 個不同的應(yīng)用就要起 10 個虛擬機(jī),而Docker 只需要啟動 10 個隔離的應(yīng)用即可。
更簡單的管理
使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分發(fā)和更新,從而實現(xiàn)自動化并且高效的管理
1.3 Docker架構(gòu)
Docker引擎架構(gòu)圖
1.4 Docker總結(jié)
Docker是世界lingxian的軟件容器平臺
Docker使用Google公司推出的Go語言進(jìn)行開發(fā)實現(xiàn),基于Linux內(nèi)核的cgroup,namespace,以及AUFS類的UnionFS等技術(shù),對進(jìn)程進(jìn)行封裝隔離,屬于操作系統(tǒng)層面的虛擬化技術(shù)。由于隔離的進(jìn)程獨立于宿主和其它的隔離的進(jìn)程,因此也稱其為容器。Docke最初實現(xiàn)是基于LXC。
Docker能夠自動執(zhí)行重復(fù)性任務(wù),例如搭建和配置開發(fā)環(huán)境,從而解放了開發(fā)人員以便他們專注在真正重要的事情上:構(gòu)建杰出的軟件。
用戶可以方便地創(chuàng)建和使用容器,把自己的應(yīng)用放入容器。容器還可以進(jìn)行版本管理、復(fù)制、分享、修改,就像管理普通的代碼一樣。
1.5 Docker的作用
輕量,在一臺機(jī)器上運行的多個Docker容器可以共享這臺機(jī)器的操作系統(tǒng)內(nèi)核;它們能夠迅速啟動,只需占用很少的計算和內(nèi)存資源。鏡像是通過文件系統(tǒng)層進(jìn)行構(gòu)造的,并共享一些公共文件。這樣就能盡量降低磁盤用量,并能更快地下載鏡像。
標(biāo)準(zhǔn),Docker容器基于開放式標(biāo)準(zhǔn),能夠在所有主流Linux版本、Microsoft Windows以及包括VM、裸機(jī)服務(wù)器和云在內(nèi)的任何基礎(chǔ)設(shè)施上運行。
安全,Docker賦予應(yīng)用的隔離性不僅限于彼此隔離,還獨立于底層的基礎(chǔ)設(shè)施。Docker默認(rèn)提供超強(qiáng)的隔離,因此應(yīng)用出現(xiàn)問題,也只是單個容器的問題,而不會波及到整臺機(jī)器。
1.6 Docker的好處
Docker的鏡像提供了除內(nèi)核外完整的運行時環(huán)境,確保了應(yīng)用運行環(huán)境一致性,從而不會再出現(xiàn)“這段代碼在我機(jī)器上沒問題啊”這類問題;——一致的運行環(huán)境
可以做到秒級、甚至毫秒級的啟動時間。大大的節(jié)約了開發(fā)、測試、部署的時間。——更快速的啟動時間
避免公用的服務(wù)器,資源會容易受到其他用戶的影響。——隔離性
善于處理集中爆發(fā)的服務(wù)器使用壓力;——彈性伸縮,快速擴(kuò)展
可以很輕易的將在一個平臺上運行的應(yīng)用,遷移到另一個平臺上,而不用擔(dān)心運行環(huán)境的變化導(dǎo)致應(yīng)用無法正常運行的情況。——遷移方便
使用Docker可以通過定制應(yīng)用鏡像來實現(xiàn)持續(xù)集成、持續(xù)交付、部署。——持續(xù)交付和部署
希望以上的分享能幫到大家!如想了解更多Java知識,歡迎關(guān)注小千,后期分享更多Java知識。
本文來自千鋒教育,轉(zhuǎn)載請注明出處。
總結(jié)
以上是生活随笔為你收集整理的Docker是什么?使用Docker的好处有哪些?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是java四大引用?
- 下一篇: Java培训分享void的用法和意义