譯者按: 各類虛擬機技術開啓了雲計算時代;而Docker,做爲下一代虛擬化技術,正在改變咱們開發、測試、部署應用的方式。那虛擬機與Docker究竟有何不一樣呢?前端
原文: Comparing Virtual Machines vs Docker Containersdocker
譯者: Fundebug數據庫
爲了保證可讀性,本文采用意譯而非直譯。另外,本文版權歸原做者全部,翻譯僅用於學習。編程
首先,你們須要明確一點,Docker容器不是虛擬機。後端
2014年,當我第一次接觸Docker的時候,我把它比作一種輕量級的虛擬機。這樣作無可厚非,由於Docker最初的成功祕訣,正是它比虛擬機更節省內存,啓動更快。Docker不停地給你們宣傳,"虛擬機須要數分鐘啓動,而Docker容器只須要50毫秒"。服務器
然而,Docker容器並不是虛擬機,咱們不妨來比較一下它們。編程語言
使用虛擬機運行多個相互隔離的應用時,以下圖:學習
使用Docker容器運行多個相互隔離的應用時,以下圖:測試
不難發現,相比於虛擬機,Docker要簡潔不少。由於咱們不須要運行一個臃腫的從操做系統了。雲計算
Docker守護進程能夠直接與主操做系統進行通訊,爲各個Docker容器分配資源;它還能夠將容器與主操做系統隔離,並將各個容器互相隔離。虛擬機啓動須要數分鐘,而Docker容器能夠在數毫秒內啓動。因爲沒有臃腫的從操做系統,Docker能夠節省大量的磁盤空間以及其餘系統資源。
說了這麼多Docker的優點,你們也沒有必要徹底否認虛擬機技術,由於二者有不一樣的使用場景。虛擬機更擅長於完全隔離整個運行環境。例如,雲服務提供商一般採用虛擬機技術隔離不一樣的用戶。而Docker一般用於隔離不一樣的應用,例如前端,後端以及數據庫。
若是你對Docker感興趣的話,不妨學習一下Dive Into Docker course。
歡迎加入咱們Fundebug的Docker技術交流羣: 305097057。
版權聲明:
轉載時請註明做者Fundebug以及本文地址: https://blog.fundebug.com/2017/05/31/docker-and-vm/