伊人99re_av日韩成人_91高潮精品免费porn_色狠狠色婷婷丁香五月_免费看的av_91亚色网站

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁 > IT資訊 > 軟件研發(fā) > 虛擬化技術(shù)之容器與 Docker普及貼

虛擬化技術(shù)之容器與 Docker普及貼

2023-05-20 08:50:11 | 來源:企業(yè)IT培訓(xùn)

在云計算中,所謂的虛擬化技術(shù)一般可以分為虛擬機(jī)技術(shù)和容器技術(shù),虛擬機(jī)即為Virtual Machine,VM,容器即為Container。那么什么是Docker 虛擬化技術(shù)呢?我們一起來看一下:

Docker是一種輕量級的虛擬化技術(shù),相較于傳統(tǒng)虛擬機(jī),Docker容器是在操作系統(tǒng)層面上實現(xiàn)虛擬化,直接復(fù)用本地主機(jī)的操作系統(tǒng),而傳統(tǒng)方式則是在硬件的基礎(chǔ)上,虛擬出自己的系統(tǒng),再在系統(tǒng)上部署相關(guān)的APP應(yīng)用。同時是一個開源的應(yīng)用容器運行環(huán)境搭建平臺,可以讓開發(fā)者以便捷方式打包應(yīng)用到一個可移植的容器中,然后安裝至任何運行Linux或Windows等系統(tǒng)的服務(wù)器上。

相較于傳統(tǒng)虛擬機(jī),Docker容器具有以下三大特點:

1、輕量化:

一臺主機(jī)上運行的多個Docker容器可以共享主機(jī)操作系統(tǒng)內(nèi)核;啟動迅速,只需占用很少的計算和內(nèi)存資源。

2、標(biāo)準(zhǔn)開放:

Docker容器基于開放式標(biāo)準(zhǔn),能夠在所有主流Linux版本、Microsoft Windows以及包括VM、裸機(jī)服務(wù)器和云在內(nèi)的任何基礎(chǔ)設(shè)施上運行。

3、安全可靠:

Docker賦予應(yīng)用的隔離性不僅限于彼此隔離,還獨立于底層的基礎(chǔ)設(shè)施。Docker默認(rèn)提供最強的隔離,因此應(yīng)用出現(xiàn)問題,也只是單個容器的問題,而不會波及到整臺主機(jī)。

讓我們通過回顧部署方式的過程,看看為什么容器如此有用。

一、應(yīng)用部署方式經(jīng)歷的各個階段

1. 傳統(tǒng)部署階段

早期,我們在物理服務(wù)器上運行應(yīng)用程序。沒有辦法為物理服務(wù)器中的應(yīng)用程序定義資源邊界,這導(dǎo)致了資源分配問題。例如,如果在物理服務(wù)器上運行多個應(yīng)用程序,則可能會出現(xiàn)一個應(yīng)用程序占用大部分資源的情況,從而導(dǎo)致其他應(yīng)用程序性能不佳。解決方案是在不同的物理服務(wù)器上運行每個應(yīng)用程序。但由于資源未得到充分利用,這種方法無法擴(kuò)展,而且組織維護(hù)許多物理服務(wù)器的成本很高。

傳統(tǒng)模式部署最大的問題是造成資源浪費。

2. 虛擬化部署階段

在虛擬化技術(shù)被引入后,虛擬化技術(shù)允許我們在單個物理服務(wù)器的 CPU 上運行多個虛擬機(jī)(VM)。虛擬化允許應(yīng)用程序在虛擬機(jī)之間隔離,不僅避免了資源沖突而且還能提供一定程度的安全性,因為一個應(yīng)用程序的信息不能被另一個應(yīng)用程序自由訪問。

虛擬化允許我們更好地利用物理服務(wù)器中的資源,有更好的可伸縮性,因為可以輕松地添加或更新應(yīng)用程序,降低硬件成本等等。通過虛擬化技術(shù),我們可以將一組物理資源表示為一次性虛擬機(jī)的集群。

每個VM都是在虛擬化硬件之上運行所有組件(包括自己的操作系統(tǒng))的完整機(jī)器。

3、容器化部署階段

容器類似于 VM,但它們具有松散的隔離屬性,以便在應(yīng)用程序之間共享操作系統(tǒng)。容器的本質(zhì)是進(jìn)程(使用了 NameSpace 做隔離,Cgroups 做限制, rootfs 做文件系統(tǒng)的特殊進(jìn)程),因此,容器被認(rèn)為是比 VM 更加輕量級的。與虛擬機(jī)類似,容器有自己的文件系統(tǒng)、CPU共享、內(nèi)存、進(jìn)程空間等。由于它們與底層基礎(chǔ)設(shè)施分離,所以它們可以跨云和操作系統(tǒng)版本移植。

容器技術(shù)可以達(dá)到企業(yè)脫離云廠商的強制綁(綁)定(架)。

二、容器的作用有哪些?解決了現(xiàn)實中的哪些問題

廣泛對容器歸納總結(jié)為:

1、容器是一種基于操作系統(tǒng)能力的隔離技術(shù)。

2、容器的本質(zhì)是一組收到資源限制,彼此之間相互隔離的過程。

容器共享宿主機(jī)的內(nèi)核,資源占用小,輕量化,對應(yīng)用有好。

3、Docker 是目前主流的容器化工具,Kubernetes(k8s) 是主流的容器編排管理工具。

4、Docker 是基于Linux 內(nèi)核的2項功能實現(xiàn)的:

Namespace:

我們知道 Linux 中的PID、IPC、網(wǎng)絡(luò)等資源是全局的,而 Namespace 機(jī)制是一種資源隔離方案,在該機(jī)制下這些資源就不再是全局的了,而是屬于某個特定的 NameSpace,各個 Namespace 下的資源互不干擾,這就使得每個 Namespace 看上去就像一個獨立的操作系統(tǒng)一樣,但是只有 Namespace 是不夠。

Control groups:

雖然有了 NameSpace 技術(shù)可以實現(xiàn)資源隔離,但進(jìn)程還是可以不受控的訪問系統(tǒng)資源,比如 CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等,為了控制容器中進(jìn)程對資源的訪問,Docker 采用 control groups 技術(shù)(也就是cgroup),有了 cgroup 就可以控制容器中進(jìn)程對系統(tǒng)資源的消耗了,比如你可以限制某個容器使用內(nèi)存的上限、可以在哪些 CPU 上運行等等。

容器解決了什么問題:

其實通過開始 應(yīng)用部署方式的變革歷程 講解的內(nèi)容就可以歸納總結(jié)容器主要解決的問題(也是其好處):

1、解決了上線流程繁瑣問題

2、解決了資源利用率低問題

3、解決了擴(kuò)容 / 縮容 不及時問題

4、解決了服務(wù)器環(huán)境臃腫問題

5、解決了環(huán)境不一致問題

三、虛擬機(jī)和容器的區(qū)別

虛擬機(jī)

虛擬機(jī)(VM)最恰當(dāng)?shù)拿枋鍪切Х挛锢碛布蛴嬎阆到y(tǒng)功能的軟件程序。它運行在名為管理程序的仿真軟件之上,通過軟件環(huán)境復(fù)制底層物理硬件資源的功能。這些資源可以稱為東家機(jī)(host machine),而在管理程序上運行的虛擬機(jī)通常稱為賓客機(jī)(guest machine)。

容器

容器化在操作系統(tǒng)級別創(chuàng)建抽象概念,以便應(yīng)用程序的單個模塊化功能可用獨立運行。因此,幾個孤立的工作負(fù)載 — 容器 — 可以使用相同的物理資源動態(tài)運行。容器不太嚴(yán)格的技術(shù)定義可以是:一個軟件單元,雖然是輕量級的,但仍可將代碼、其依賴項和配置完全捆綁到一個映像中。

Namespaces是 Linux 中的一個高級概念,每個 Namespaces 都有自己的獨立資源,而不需要底層硬件的實際分區(qū)。Namespaces 用于虛擬化底層操作系統(tǒng)。

總結(jié)

虛擬機(jī):

提升服務(wù)器資源利用率

提供一個完全隔離的環(huán)境(OS級別)

容器:

容器提供一個基本的獨立環(huán)境,實現(xiàn)容器隔離、資源限制。

容器主要解決應(yīng)用層面的問題,達(dá)到應(yīng)用快速部署、高效管理。

個人感覺我們不應(yīng)該單純的進(jìn)行虛擬機(jī)和容器來對比,因為從我們上述的總結(jié)與對比中可以發(fā)現(xiàn):

他們的側(cè)重目的點和作用不同,之所以被大家拿出來對比,因為他們都是虛擬化的手段。

其實在云平臺中,我覺得下面這個圖(圖片由bluetata原創(chuàng)轉(zhuǎn)載請注明出處)更能體現(xiàn) 虛擬機(jī)和 容器的關(guān)系,他們是相輔相成相互合作的,有著不同的分工:

如果要真拿虛擬機(jī)和容器進(jìn)行對比的話,總結(jié)起來的對比表格可以參照如下:

Docker 是一個開源項目,誕生于 2013 年初,最初是 dotCloud 公司內(nèi)部的一個業(yè)余項目。它基于 Google 公司推出的 Go 語言實現(xiàn)。項目后來加入了 Linux 基金會,遵從了 Apache 2.0 協(xié)議,項目代碼在 GitHub 上進(jìn)行維護(hù)。

Docker項目只是容器技術(shù)的其中一種實現(xiàn),因為它是管理容器的最流行的工具,所以成為了容器技術(shù)的代名詞,其他著名的容器工具還包括:rkt、Podman、LXC、containerd、Buildah 等。

Docker 使用客戶端-服務(wù)器 (C/S) 架構(gòu)模式,也就是分為客戶端(Client)和服務(wù)端(Server)。

Docker 主要的架構(gòu)組成如下:

1. Docker Client 客戶端

Docker Client 通過命令行或者其他工具使用 Docker API/SDK與 Docker daemon 通信。例如:當(dāng)使用docker run 命令時,Docker Client 將其發(fā)送到 dockerd 來實現(xiàn)相應(yīng)的功能。

總結(jié)起來 Docker Client 客戶端的一些特征

Docker Client 可以與多個 Docker daemon 進(jìn)行交互。

Docker Client 客戶端通過命令行或者其他工具使用 Docker API。

Docker Client 客戶端和服務(wù)器通過 Socket 或 RESTful API 進(jìn)行通信。

Docker Client 客戶端可以連接本地或者遠(yuǎn)程的守護(hù)進(jìn)程。

2. Docker Host 主機(jī)

一個物理或者虛擬的機(jī)器用于執(zhí)行 Docker 守護(hù)進(jìn)程和容器。

3. Docker Daemon 守護(hù)進(jìn)程

Docker daemon (dockerd) 監(jiān)聽 Docker API 請求并管理 Docker 對象,如鏡像、容器、網(wǎng)絡(luò)和卷。

例如:接收并處理 docker client 發(fā)送的請求。daemon 在后臺啟動一個server,server 負(fù)責(zé)接受docker client 發(fā)送的請求;接受請求后,server 通過路由與分發(fā)調(diào)度,找到相應(yīng)的 handler 來執(zhí)行請求。

4. Docker Container 容器

類似于一個輕量級的沙盒,可以將其看作一個極簡的 Linux 系統(tǒng)環(huán)境(包括 root 權(quán)限、進(jìn)程空間、用戶空間和網(wǎng)絡(luò)空間等)。基于 Docker 鏡像被創(chuàng)建,鏡像是靜態(tài)的定義,容器是鏡像運行時的實體;容器可以被創(chuàng)建、啟動、停止、刪除、暫停等。容器是獨立運行的一個或一組應(yīng)用。

5. Docker Images 鏡像

Docker鏡像里包含了打包的應(yīng)用程序及其所依賴的環(huán)境、可用的文件系統(tǒng)和其他元數(shù)據(jù)。Docker 鏡像是用于創(chuàng)建 Docker 容器的模板。

6. Docker Registry 倉庫

倉庫用來存儲 Docker 鏡像,分為公有倉庫和私有倉庫??梢陨蟼麋R像到一個鏡像倉庫,然后下載到另外一臺電腦上并運行它。

Docker Hub 是一個 Docker 官方維護(hù)的公共倉庫,Docker 默認(rèn)從 Docker Hub 來查找鏡像。我們也可以維護(hù)自己私有的鏡像托管服務(wù)。

使用docker pull或docker run命令時,所需的圖像將從配置的倉庫中提取。使用該docker push命令時,會將鏡像推送到配置的倉庫中。

(1)作為云主機(jī)使用

相比虛擬機(jī)來說,容器使用的是一系列非常輕量級的虛擬化技術(shù),使得其啟動、部署、升級跟管理進(jìn)程一樣迅速,用起來靈活又感覺跟虛擬機(jī)一樣沒什么區(qū)別,所以有些人直接使用 Docker 的 Ubuntu 等鏡像創(chuàng)建容器,當(dāng)作輕量的虛擬機(jī)來使用。

(2)作為服務(wù)使用

如果你僅僅把 Docker 容器當(dāng)作一個輕量的固定虛擬機(jī)用,那其實只能算是另類用法,Docker 容器最重要價值在于提供一整套平臺無關(guān)的標(biāo)準(zhǔn)化技術(shù),簡化服務(wù)的部署、升級、維護(hù),只要把需要運維的各種服務(wù)打包成標(biāo)準(zhǔn)的集裝箱,就可以在任何能運行 Docker 的環(huán)境下跑起來,達(dá)到開箱即用的效果,這個特點才是 Docker 容器風(fēng)靡全球的根本原因。

Web應(yīng)用服務(wù)

持續(xù)集成和持續(xù)部署

(3)微服務(wù)架構(gòu)使用

如果說上面兩種應(yīng)用場景還不足以體現(xiàn)出與傳統(tǒng)的 PaaS 平臺相比的巨大優(yōu)勢的話,那么對微服務(wù)的架構(gòu)這種復(fù)雜又靈活的使用場景的無縫支持絕對具有革命意義。

微服務(wù)架構(gòu)將傳統(tǒng)分布式服務(wù)繼續(xù)拆分解耦,形成一些更小服務(wù)模塊,服務(wù)模塊之間獨立部署升級,這些特性與容器的輕量、高效部署不謀而合。

四、企業(yè)如何實施容器

企業(yè)不必羞于向工具池中添加容器。想要利用它?以下是開始利用容器的一些方法:

1、洞悉您的當(dāng)前環(huán)境。分析您的應(yīng)用,核查最適合它們的環(huán)境。您是重構(gòu)現(xiàn)有應(yīng)用還是構(gòu)建全新應(yīng)用?如果您對重構(gòu)感興趣,請從無需與其他應(yīng)用交互便可運行的獨立應(yīng)用入手。

2、培養(yǎng)推廣者。貴組織中的某個人(或很多人)可能都對容器化策略有自己的一兩個想法。與他們交談,向他們學(xué)習(xí),并考慮讓他們成為這項活動的推廣者。

3、指定一個項目。確定一個起步的小項目,指定項目組,并設(shè)立大致的項目目標(biāo)。評估沿途的變化。

4、鼓勵參加培訓(xùn)。學(xué)好新技術(shù)需要一定的時間??紤]參加相關(guān)課程培訓(xùn),或者至少給開發(fā)者留出專門的學(xué)習(xí)時間。

如果企業(yè)希望借助DevOps來加速連續(xù)發(fā)布基于微服務(wù)的分布式應(yīng)用功能,則會繼續(xù)加大容器化投資,尤其是在無法依靠虛擬化實現(xiàn)該等目標(biāo)的領(lǐng)域。

點擊了解相關(guān)課程——虛擬化容器技術(shù)Docker+K8s

主站蜘蛛池模板: xx69视频| 打开腿让我添你下面小污文 | 99热精国产这里只有精品 | 麻豆成人久久精品二区三区91 | 久久天堂国产精品 | 无码专区精品推荐第一页 | 国产亚洲一二三区 | 久热中文字幕在线 | 日韩精品中文字幕无码一区 | 色就色综合偷拍区91网 | 久久综合亚洲色hezyo国 | gogogo高清在线观看视频 | 老司机精品线观看视频 | 撕开校花奶罩揉她娇乳动漫 | 国产情侣第一页 | 成人黄色av | 日韩午夜久久 | 久久国产精品张柏芝 | 亚洲国产精品网站 | 国产美女自拍 | 国产人妻精品久久久久野外 | 97久久超碰亚洲视觉盛宴 | 美女色诱视频大全免费 | 一区二区免费高清 | 老司机精品视频在线播放 | 国产51人人成人人人人爽色哟哟 | 图片区乱熟图片区小说 | 白丝小舞被调教的奶水直流 | 精品国产一区二区三区国产区 | 免费在线观看www | 国内精品91 | 99精品在线视频观看 | 澳门午夜影院 | 91少妇丨porny丨 | 国产日韩久久免费福利网站 | 欧美日韩精品一区二区三区视频 | 久久国产劲暴∨内射新川 | 操处女逼小说 | 久久精品国产亚洲AV蜜臀色欲 | 91色综合网 | 久久久亚洲国产 |