容器相比虛擬機更輕量 ubuntu
一 虛擬機 架構
二 容器 運維
1、本質上的區別: 分佈式
VM(VMware)在宿主機器、宿主機器操做系統的基礎上建立虛擬層、虛擬化的操做系統、虛擬化的倉庫,而後再安裝應用;微服務
Container(Docker容器),在宿主機器、宿主機器操做系統上建立Docker引擎,在引擎的基礎上再安裝應用。性能
那麼問題來了,沒有操做系統,怎麼運行程序?測試
能夠在Docker中建立一個ubuntu的鏡像文件,這樣就能將ubuntu系統集成到Docker中,運行的應用就都是ubuntu的應用。操作系統
Size: 設計
1.虛擬機中ubuntu所佔內存:
2.Docker容器中ubuntu鏡像文件所佔內存
Startup:
Docker在宿主機器的操做系統上建立Docker引擎,直接在宿主主機的操做系統上調用硬件資源,而不是虛擬化操做系統和硬件資源,因此操做速度快。
這個其實安裝一個ubuntu的虛擬機和拉取一個Docker的ubuntu鏡像文件,運行一下就知道了,區別很明顯,虛擬機開一下大概得2分多鐘,而Docker只須要2秒鐘。
Integration:
Docker的集成性要比VM好。這個並無深刻研究,不過能夠提供一個博客,這裏面關於Docker集成的內容寫的很好。
https://blog.csdn.net/karamos/article/details/80124166
3、Docker特色
1)上手快
用戶只須要幾分鐘,就能夠把本身的程序「Docker 化」。Docker 依賴於「寫時複製」 (copy-on-write)模型,使修改應用程序也很是迅速,能夠說達到「隨心所致,代碼即改」 的境界。
隨後,就能夠建立容器來運行應用程序了。大多數 Docker 容器只須要不到 1 秒中便可 啓動。因爲去除了管理程序的開銷,Docker 容器擁有很高的性能,同時同一臺宿主機中也 能夠運行更多的容器,使用戶儘量的充分利用系統資源。
2)職責的邏輯分類
使用 Docker,開發人員只須要關心容器中運行的應用程序,而運維人員只須要關心如 何管理容器。Docker 設計的目的就是要增強開發人員寫代碼的開發環境與應用程序要部署 的生產環境一致性。從而下降那種「開發時一切正常,確定是運維的問題(測試環境都是正 常的,上線後出了問題就歸結爲確定是運維的問題)」
3)快速高效的開發生命週期
Docker 的目標之一就是縮短代碼從開發、測試到部署、上線運行的週期,讓你的應用 程序具有可移植性,易於構建,並易於協做。(通俗一點說,Docker 就像一個盒子,裏面 能夠裝不少物件,若是須要這些物件的能夠直接將該大盒子拿走,而不須要從該盒子中一件 件的取。)
4)鼓勵使用面向服務的架構
Docker 還鼓勵面向服務的體系結構和微服務架構。Docker 推薦單個容器只運行一個應 用程序或進程,這樣就造成了一個分佈式的應用程序模型,在這種模型下,應用程序或者服 務均可以表示爲一系列內部互聯的容器,從而使分佈式部署應用程序,擴展或調試應用程序 都變得很是簡單,同時也提升了程序的內省性。(固然,能夠在一個容器中運行多個應用程 序)
---------------------
做者:JingZhunBianCheng
來源:CSDN
原文:http://www.javashuo.com/article/p-ziyljpmw-he.html 版權聲明:本文爲博主原創文章,轉載請附上博文連接!