容器與虛擬機器

2021-08-10 12:40:05 字數 1635 閱讀 7149

------是否容器化是個問題,或者說容器vs虛擬機器是永恆的爭論

資源需求

安全架構優缺點

容器的優缺點

在mirantis,我們經常考慮如何將整個傳統的開發域上雲,我們首先考慮的不是如何去移動乙個開發域,而是考慮該開發域該不該上雲。在本文中,我們將討論在特定情況下上雲需要考慮的一些問題。

目前將應用遷移到雲上,一般有兩種方式,虛擬機器和容器,儘管在許多情況下,最簡單的解決方案似乎是將應用遷移到虛擬機器,但這種解決方式並不一定是最好的。

下面讓我們看看影響你上雲決定的不同因素

虛擬機器架構

虛擬機器就是整個物理機的抽象,上至作業系統,下至記憶體與儲存。vm映象可以代表作業系統,在製作vm映象的時候可以按需安裝軟體,例如web伺服器和資料庫等,在製作映象的時候安裝的軟體也會出現在以該映象啟動的虛擬機器中。每個vm都與它所執行的主機,以及主機上其他任何vm相互隔離。

容器架構

容器被設計成戰有現有機器的一部分,在同乙個作業系統上的容器共享主機核心,容器在系統上只需要足夠所需**執行的庫環境的空間即可,容器構建映象的時候映象可以包含所需的一切。

由於架構不同,執行虛擬機器和容器的資源需求也非常不同。虛擬機器本質上是乙個完整的計算機,自然而然的需要比容器更多的資源,而容器只是作業系統的一部分。一般對於容器集群來說,他的資源密集度較低,因此在單個伺服器上執行多容器要比在單個伺服器上執行多vm更適合。

需要注意的是,在多個服務共享單個虛擬機器資源的時候,用多個容器來代替單個虛擬機器更能夠達到資源的合理利用,這時候容器是更好的選擇。例如,你要將單個vm的功能分解成50個不同的服務,那麼這50個不同的服務則是50份部分作業系統副本,而不是整個作業系統副本。因此一定要弄清楚需求。

關於vm或容器是否更安全是乙個極具爭議的問題,下面談談一些主要的主題。

虛擬機器彼此之間相互之間嚴格隔離,但容器共享主機核心,因此如果容器中的乙個被破壞,可能會置主機於危險之中。重要的是,doker使用libcontainer與linux進行互動,涉及到五個不同namespace,包括程序,網路,檔案掛載,主機名,共享記憶體,這些高度隔離的namespace為容器的安全問題提供了部分解決方案。

此外,openstack magnum容器專案前的ptl(project team leader)adrian otto指出:「虛擬機器的供給面很小,而在linux3.19核心中,容器的系統呼叫不少於397個」。

儘管虛擬機器的攻擊面比容器小,但仍要考慮到整個虛擬化平台。虛擬機器爆發漏洞是不可能的,mirantis安全專家adam heczko指出:」qemu到目前收到217個漏洞的影響,迄今為止,有三次攻擊vm逃逸攻擊。我不確定虛擬機器是否比容器更安全,威脅模型與架構完全不同。」這段話翻譯的可能不準確,有更好理解的麻煩斧正,謝謝!

安全性的另乙個方面要考慮的是,雖然使用者通常建立自己的虛擬機器映象來執行他們所需的軟體,但是容器(特別是docker)則是為彼此構建而設計的。

例如,您正在建立乙個基於web的搜尋引用程式,您可以建立乙個容器映象,如下:

以上例子,前兩層映象都可以在docker官網或者各自官網找到相關資料進行部署使用,第三層則需要自己去鑽研。

vm的架構優缺點

雖然現在流行容器將取代vm的論調,但就像生活中的很多事一樣,各有優缺點。優點

缺點 容器的優缺點優點

缺點

容器和虛擬機器

說明 容器和虛擬機器都依賴於宿主機才能執行。宿主機可以是筆記本,是資料中心的物理伺服器,也可以是公有雲的某個例項。假設宿主機是一台需要執行 4 個業務應用的物理伺服器。在虛擬機器模型中,首先要開啟物理機並啟動 hypervisor 引導程式。一旦 hypervisor 啟動,就會占有機器上的全部物理...

虛擬機器和容器比較

容器相比虛擬機器更輕量 一 虛擬機器 二 容器 一 本質上的區別 vm vmware 在宿主機器 宿主機器作業系統的基礎上建立虛擬層 虛擬化的作業系統 虛擬化的倉庫,然後再安裝應用 container docker容器 在宿主機器 宿主機器作業系統上建立docker引擎,在引擎的基礎上再安裝應用。那...

再談容器與虛擬機器的那點事

容器技術起源於虛擬化技術的發展,欣欣向榮的 docker 著實是容器技術潮流中的一朵十分耀眼的浪花。在 docker 誕生之初,它常常被放在虛擬機器技術的對立面,甚至還有過 docker 將替代虛擬機器的誇大宣傳,在許多集群以及虛擬化方案設計的討論中,也總會將兩者拿來比較一番利弊。現如今 docke...