物理機
物理機,對應采購的服務器設備,又叫裸設備,bare metal,隨着摩爾定律的增長,單個服務器的性能逐漸提升,物理服務器的性能是如此的高,以致於我們實際使用到的物理機的性能只占了百分之幾甚至更低,為了靈活的部署系統和應用,需要一層虛擬層
在物理機之上,這就是虛擬機。
注意:物理機就是普通的主機。筆記本電腦,台式電腦都可以叫物理機。
虛擬機
虛擬機,與現在流行的“雲計算”的概念的有着緊密聯系,虛擬機的概念在IaaS層,即基礎設施即服務部分,可以自行學習一下。為了讓全人類能夠像使用自來水、電一樣使用計算資源,我們需要在幾百上千台物理機上部署虛擬化軟件,如vmware等等,使得
他們的表現就像一台巨大的計算機。同時它還具有靈活性和解耦性,你可以在一台物理機上部署10台虛擬機,使得一台物理機的表現就像10台性能略差的服務器,當你不需要他們時,你又可以隨時的回收資源重新分配。
注意:虛擬機是建在物理機上的。相當於你有了幾個電腦
容器
容器,也是虛擬層的概念,相對虛擬機而言,容器更加輕量級。虛擬機中需要模擬一台物理機的所有資源,比如你要模擬出有多少CPU、網卡、顯卡等等,這些都是在軟件層面通過計算資源實現的,這就給物理機憑空增加了不必要的計算量。容器僅僅在操
作系統層面向上,對應用的所需各類資源進行了隔離。這也是為何微服務、PaaS和Docker最近如此火爆的原因,資源消耗少,遷移部署簡單,成本低。尤其是CNCF提供的一系列工具,更是把容器技術推動到了浪潮之巔。
other
你去京東或者淘寶上,買CPU、顯卡啊,硬盤啊,組裝起來,開機裝上Windows也好,Linux也好。
這就是一台物理機,硬件>你使用的系統。
然后,假設你裝的Windows,你需要一台Linux來跑你的代碼也好,學習也好,你需要安裝一個虛擬化工具(如Windows自帶的HV或者vmware),這樣你就能啟動一個Linux起來。
硬件>windows>linux,Linux就是虛擬機。
然后就到容器,這里就需要更加深一層的知識。從上面的架構來看,Windows就是hostOS,linux屬於GuestOS,而容器則是取代了本來屬於GuestOS的位置(既上圖中的Linux)。
那么虛擬化工具就從vmware變成docker。虛擬機和容器的區別,最重要就是在損耗上面,容器管理一般不建議把一些不必要的功能放進去,所以容器啟動的時候,基本是保持,一個應用啟動一個容器,這樣啟動速度和消耗都會很小。
但是虛擬機則會把很多服務附帶進去。所以啟動速度和損耗都比較大一點
總結
一台電腦是物理機,然后在物理機上通過虛擬軟件裝虛擬機,每個電腦可以裝多個虛擬機,只要內存夠,登陸虛擬機進去,又類似一台電腦,每個虛擬機可以安裝不同的操作系統,容器也是建立在物理機上的,物理機和容器可以一對多,也可以一對一,容器和虛擬機作用是一樣的,只不過容器比虛擬機更加輕量級
參考