IE9下訪問可能不佳,推薦使用以下版本瀏覽器X

歡迎您來到炎黃網(wǎng)絡!

服務熱線:400-0000-786

除了虛擬機,云計算的底層技術容器

—— 閱讀:4019次
  

虛擬機是云計算的核心技術之一,也是目前云主機的主要實現(xiàn)方式。除了虛擬機,容器也在云計算中應用得越來越多。那么容器與虛擬機到底有什么區(qū)別?

容器化技術的起源

目前容器技術的代表就是Docker,很多人認為容器將取代虛擬機,成為云計算的主流技術。說到Docker,就要從Docker的底層技術LXC(Linux Container)說起。

與VMWare為代表的虛擬機技術不同,LXC是在操作系統(tǒng)層面為進程提供虛擬的運行環(huán)境,而不是通過硬件抽象層來對硬件進行虛擬化。VMWare虛擬機是面向操作系統(tǒng)的,而LXC是面向進程的。

LXC提供的虛擬運行環(huán)境就是容器,操作系統(tǒng)可以為容器分配資源,包括特定比例的cpu時間、IO時間,內(nèi)存,外設訪問控制,并提供獨立的命名空間(namespace)。

LXC的實現(xiàn)是靠Linux內(nèi)核在資源管理和隔離控制方面的相關特性。

  • LXC在資源管理方面依賴于Linux內(nèi)核的控制組(cgroups)子系統(tǒng),cgroups子系統(tǒng)是Linux內(nèi)核提供的一個基于進程組的資源管理的框架,可以為特定的進程組限定可以使用的資源。

  • LXC在隔離控制方面依賴于Linux內(nèi)核的namespace特性,命名空間可以讓進程與進程之間,用戶與用戶之間彼此看不到對方。

Docker與LXC的關系

Docker 是 PaaS 提供商 dotCloud ,也就是后來的Docker公司,開源的一個基于 LXC 的高級容器引擎,源代碼托管在 Github 上, 基于go語言并遵從Apache2.0協(xié)議開源。

Docker 是一個開源的應用容器引擎,讓開發(fā)者可以打包應用到一個可移植的容器中,然后發(fā)布到Linux 機器上。容器是完全使用沙箱機制,相互之間不會有任何接口。

Docker基于Linux的LXC技術,可以認為是LXC的上層封裝。當然除了容器以外,Docker還包括了鏡像管理的功能。從資源管理角度來說,Docker基于LXC,LXC基于cgroup。

1

Docker與LXC的關系

容器與虛擬機的比較

2

虛擬機與容器的對比

以VMWare公司產(chǎn)品、KVM等為代表的虛擬機技術,是通過對硬件的抽象來實現(xiàn)的。關于硬件抽象的原理,可以參考前文《云計算IaaS的核心技術:虛擬化技術》。

以Docker為代表的容器技術,是操作系統(tǒng)層面的虛擬化技術。與HAL(硬件抽象層)層面的虛擬化技術相比,有以下區(qū)別:

  1. 虛擬化開銷。由于利用了Linux內(nèi)核提供的LXC特性,所以容器的虛擬化開銷更小。傳統(tǒng)虛擬機要先創(chuàng)建虛擬機,然后安裝操作系統(tǒng),最后部署應用。

  2. 鏡像文件。由于容器鏡像不需要包括Guest OS,只需要包括應用及其依賴包,因此鏡像文件更小。

  3. 部署。傳統(tǒng)的虛擬化技術則需要先創(chuàng)建虛擬機,然后安裝系統(tǒng),再部署應用。容器利用LXC相關命令,可直接創(chuàng)建并啟動應用的運行環(huán)境。

  4. 跨平臺。由于底層基于LXC,所以Docker必須基于Linux系統(tǒng)搭建。虛擬機管理程序Hypervisor可以運行在不同的操作系統(tǒng)上,甚至直接運行在裸機上。

收縮

在線客服

customer service

神农架林区| 都昌县| 从化市| 池州市| 丹棱县| 昌平区| 湖州市| 苗栗市| 哈密市| 库伦旗| 辉县市| 易门县| 察哈| 牙克石市| 余庆县| 定西市| 娱乐| 温宿县| 开鲁县| 安远县| 海南省| 龙江县| 宁乡县| 安顺市| 龙口市| 开鲁县| 隆子县| 吴川市| 乌拉特后旗| 图们市| 东阿县| 青龙| 禹州市| 桐柏县| 上思县| 沈阳市| 邓州市| 通河县| 舞阳县| 尚志市| 宣城市|