之所以使用虛擬機,其出發點是我們可以利用虛機將一台大的伺服器隔離成多個小的虛機,每個虛機跑獨立的應用,這樣便於我們管理;舉個例子,假設沒有虛擬機,我們將多個應用跑在一台伺服器上,多個應用間很有可能會出現埠衝突,或者多個應用使用同一個軟體的版本不一樣(例如使用不同版本的Python,JDK版本不一樣等等),即在一台機器上運行多個應用可能產生衝突,所以可以考慮將一台伺服器隔離成多個資源隔離的虛擬機,應用跑在每個獨立的虛機裡面,例如一個虛擬機只跑一個應用,而另一個虛機跑另一個應用。 這樣就避免了應用之間的衝突。此外某些應用可能存在不易察覺的BUG,例如在特定的場景下觸發後會瘋狂的吃內存。如果多個應用運行在一台物理伺服器上的話,一個應用的BUG會影響其他的應用和服務的運行。而此時既然我們有虛機了,就沒有必要在一台大的物理伺服器上跑多個應用,此時就可以將大的硬體伺服器隔成多個小的虛機,在每個小的虛機里運行不同的單一的應用,避免相互之間的干擾和衝突。如圖所示: