日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Docker這幾年的迅猛發展讓容器重新流行起來,不過但很多資料里介紹Docker時都說是"新瓶裝舊酒"。除了容器外虛擬機也是我們或多或少會接觸到的虛擬化技術。虛擬機和容器都用于創建隔離的虛擬環境,但是這兩種虛擬化技術有顯著的不同,今天的文章就來聊一下它們之間的區別。

虛擬機

虛擬機(VM)是共享一個服務器的物理資源的操作系統。它是主機硬件上的Guest,因此也被稱為Guest虛擬機。

虛擬機由幾層組成。支持虛擬化的層是hypervisor。hypervisor是一種虛擬化服務器的軟件。

虛擬機是怎么工作的

運行應用程序所需的一切都包含在虛擬機里--虛擬化的硬件,操作系統以及任何所需的二進制文件和庫。因此,虛擬機具有自己獨立的基礎架構。

容器和虛擬機到底有啥區別?

 

虛擬機架構圖

虛擬機的優勢

虛擬機可減少在服務器設備上的支出,可以利用一個物理服務器資源切分成多個獨立的虛擬機來完成許多工作。

由于只有一臺主機,因此可以利用虛擬機管理程序的集中功能高效地管理所有虛擬環境。這些系統完全相互獨立,這意味著你可以在不同的虛擬機里安裝不同的系統環境。

最重要的是,虛擬機與主機操作系統隔離,是進行實驗和開發應用程序的安全場所。

虛擬機的劣勢

虛擬機可能占用主機的大量系統資源,虛擬機的大小為數GB。在虛擬服務器上運行單個應用程序意味著還要運行Guest OS以及Guest OS運行所需的所有硬件的虛擬副本。這樣很快就增加了很多RAM和CPU資源消耗。

遷移虛擬機上運行的應用程序的過程也可能很復雜,因為它始終附加在操作系統上。因此,必須同時遷移應用程序和操作系統。同樣,在創建虛擬機時,系統管理程序會分配專用于VM的硬件資源。不過與運行單獨的實體服務器相比,這仍然是經濟的。

容器

容器是一個不依賴于操作系統,運行應用程序的環境。它通過linux的Namespaces和Cgroups技術對應用程序進程進行隔離和限制的,Namespace的作用是隔離,它讓應用進程只能看到該Namespace內的世界;而Cgroups 的作用是限制分配給進程的宿主機資源。但對于宿主機來說,這些被“隔離”了的進程跟其他進程并沒有太大區別。

容器只是運行在宿主機上的一種特殊的進程,多個容器之間使用的還是同一個宿主機的操作系統內核。

關于Namespaces和Cgroups后面再詳細介紹,這里你只知道他們是啟動隔離和限制應用進程的就行了。

容器是怎么工作的

Namespace的作用是隔離,它讓應用進程只能看到該Namespace內的世界;而Cgroups的作用是限制,它給這個世界圍上了一圈看不見的墻。通過Mount Namespace可以修改容器進程對自己的文件系統 "掛載點"的認知。在容器進程啟動之前重新掛載它的整個根目錄"/"(通過pivot_root系統調用改變進程的文件系統,如果系統不支持,則使用chroot),而由于Mount Namespace的存在,這個掛載對宿主機不可見的。這個掛載在容器根目錄上、用來為容器進程提供隔離后執行環境的文件系統,就是所謂的“容器鏡像”。它還有一個更為專業的名字,叫做:rootfs(根文件系統)。rootfs只是一個操作系統所包含的文件、配置和目錄,并不包括操作系統內核。

所以說,rootfs 只包括了操作系統的 "軀殼",并沒有包括操作系統的內核。同一臺機器上的所有容器,都會共享宿主機操作系統的內核。

這就意味著,如果容器里的應用程序需要配置內核參數、跟內核進行直接的交互,這些都是操作的宿主機操作系統的內核,它對于該機器上的所有容器來說是一個“全局變量”,牽一發而動全身。這也是容器相比于虛擬機的主要缺陷之一:畢竟虛擬機有模擬出來的硬件機器充當沙盒,而且每個虛擬機里還運行著一個完整Guest OS讓應用隨便折騰。不過由于rootfs里打包的不只是應用,而是整個操作系統的文件和目錄,也就意味著,應用以及它運行所需要的所有依賴,都被封裝在了一起。這就賦予了容器所謂的一致性:無論在本地、云端,還是在一臺任何地方的機器上,用戶只需要解壓打包好的容器鏡像,那么這個應用運行所需要的完整的執行環境就能被重現出來。

容器和虛擬機到底有啥區別?

 

容器的優勢

容器占用的大小比虛擬機小很多,甚至可以小到10MB,可以輕松限制容器的內存和CPU使用率。與部署應用需要部署整個操作系統的虛擬機相比,容器非常輕巧且啟動迅速。這樣讓我們可以快速擴展容器并添加相同的容器。

同樣,容器對于持續集成和持續部署(CI / CD)實施也是極好的選擇。他們通過在開發人員之間分發和合并鏡像來促進協作開發。

容器的劣勢

容器仍無法提供與虛擬機相同的安全性和穩定性。由于它們共享主機的內核,因此不能像虛擬機一樣完全隔離。

容器是進程級的隔離,一個容器可以通過影響宿主機內核的穩定性來影響其他容器。

一旦容器執行了任務,它就會關閉并刪除其中的所有數據。如果希望數據保留下來,則必須使用"數據卷"進行保存,這需要在主機上進行手動配置。

容器還是虛擬機

上面我們列出了容器和虛擬機各自的優勢和劣勢,我們在因為優勢選擇了其一后默認就要其忍受劣勢所帶來的副作用,凡事都有兩面性沒有東西可以只有優點沒缺點的。就容器和虛擬機來說,因為其完整的隔離和安全性虛擬機通常用于要求苛刻的應用程序,網絡基礎結構以及能消耗VM大部分資源的應用程序。而容器通常用于Web應用,微服務。

分享到:
標簽:容器
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定