1. 程式人生 > >Docker從入門到精通————1、Docker簡介

Docker從入門到精通————1、Docker簡介

硬體層的虛擬化具有高效能和隔離性,因為hypervisor直接在硬體上執行,有利於控制VM的OS訪問硬體資源,使用這種解決方案的產品有VMware ESXi 和 Xen server。

Hypervisor是一種執行在物理伺服器和作業系統之間的中間軟體層,可允許多個作業系統和應用共享一套基礎物理硬體,因此也可以看作是虛擬環境中的“元”作業系統,它可以協調訪問伺服器上的所有物理裝置和虛擬機器,也叫虛擬機器監視器(Virtual Machine Monitor,VMM)。

Hypervisor是所有虛擬化技術的核心。當伺服器啟動並執行Hypervisor時,它會給每一臺虛擬機器分配適量的記憶體、CPU、網路和磁碟,並載入所有虛擬機器的客戶作業系統。

Hypervisor是所有虛擬化技術的核心,軟硬體架構和管理更高效、更靈活,硬體的效能能夠更好地發揮出來。常見的產品有:VMware、KVM、Xen等等。Openstack

二、什麼是Docker

容器技術

在計算機的世界中,容器擁有一段漫長且傳奇的歷史。容器與管理程式虛擬化(hypervisor virtualization,HV)有所不同,管理程式虛擬化通過中間層將一臺或者多臺獨立的機器虛擬執行與物理硬體之上,而容器則是直接執行在作業系統核心之上的使用者空間。因此,容器虛擬化也被稱為“作業系統級虛擬化”,容器技術可以讓多個獨立的使用者空間執行在同一臺宿主機上。

由於“客居”於作業系統,容器只能執行與底層宿主機相同或者相似的作業系統,這看起來並不是非常靈活。例如:可以在Ubuntu服務中執行Redhat Enterprise Linux,但無法再Ubuntu伺服器上執行Microsoft Windows。

相對於徹底隔離的管理程式虛擬化,容器被認為是不安全的。而反對這一觀點的人則認為,由於虛擬容器所虛擬的是一個完整的作業系統,這無疑增大了攻擊範圍,而且還要考慮管理程式層潛在的暴露風險。

儘管有諸多侷限性,容器還是被廣泛部署於各種各樣的應用場合。在超大規模的多租戶服務部署、輕量級沙盒以及對安全要求不太高的隔離環境中,容器技術非常流行。最常見的一個例子就是“許可權隔離監牢”(chroot jail),它建立一個隔離的目錄環境來執行程序。如果許可權隔離監牢正在執行的程序被入侵者攻破,入侵者便會發現自己“身陷囹圄”,因為許可權不足被困在容器所建立的目錄中,無法對宿主機進一步破壞。

最新的容器技術引入了OpenVZ、Solaris Zones以及Linux容器(LXC)。使用這些新技術,容器不在僅僅是一個單純的執行環境。在自己的許可權類內,容器更像是一個完整的宿主機。對Docker來說,它得益於現代Linux特性,如控制元件組(control group)、名稱空間(namespace)技術,容器和宿主機之間的隔離更加徹底,容器有獨立的網路和儲存棧,還擁有自己的資源管理能力,使得同一臺宿主機中的多個容器可以友好的共存。

容器被認為是精益技術,因為容器需要的開銷有限。和傳統虛擬化以及半虛擬化相比,容器不需要模擬層(emulation layer)和管理層(hypervisor layer),而是使用作業系統的系統呼叫介面。這降低了執行單個容器所需的開銷,也使得宿主機中可以執行更多的容器。

儘管有著光輝的歷史,容器仍未得到廣泛的認可。一個很重要的原因就是容器技術的複雜性:容器本身就比較複雜,不易安裝,管理和自動化也很困難。而Docker就是為了改變這一切而生的。

容器與虛擬機器比較

(1)本質上的區別