51学通信论坛2017新版

标题: 除了虚拟机,云计算的另一项底层技术选项:容器化 [打印本页]

作者: admin    时间: 2017-9-16 17:38
标题: 除了虚拟机,云计算的另一项底层技术选项:容器化
虚拟机是云计算的核心技术之一,也是目前云主机的主要实现方式。除了虚拟机,容器也在云计算中应用得越来越多。那么容器与虚拟机到底有什么区别?
[attach]368[/attach]

容器化技术的起源


目前容器技术的代表就是Docker,很多人认为容器将取代虚拟机,成为云计算的主流技术。说到Docker,就要从Docker的底层技术LXC(Linux Container)说起。
与VMWare为代表的虚拟机技术不同,LXC是在操作系统层面为进程提供虚拟的运行环境,而不是通过硬件抽象层来对硬件进行虚拟化。VMWare虚拟机是面向操作系统的,而LXC是面向进程的。
LXC提供的虚拟运行环境就是容器,操作系统可以为容器分配资源,包括特定比例的cpu时间、IO时间,内存,外设访问控制,并提供独立的命名空间(namespace)。
LXC的实现是靠Linux内核在资源管理和隔离控制方面的相关特性。
Docker与LXC的关系


Docker 是 PaaS 提供商 dotCloud ,也就是后来的Docker公司,开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。

Docker 是一个开源的应用容器引擎,让开发者可以打包应用到一个可移植的容器中,然后发布到Linux 机器上。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker基于Linux的LXC技术,可以认为是LXC的上层封装。当然除了容器以外,Docker还包括了镜像管理的功能。从资源管理角度来说,Docker基于LXC,LXC基于cgroup。
[attach]369[/attach]

Docker与LXC的关系

容器与虚拟机的比较

[attach]370[/attach]

虚拟机与容器的对比


以VMWare公司产品、KVM等为代表的虚拟机技术,是通过对硬件的抽象来实现的。关于硬件抽象的原理,可以参考前文《云计算IaaS的核心技术:虚拟化技术》。
以Docker为代表的容器技术,是操作系统层面的虚拟化技术。与HAL(硬件抽象层)层面的虚拟化技术相比,有以下区别:

声明:本文转载自网络。版权归原作者所有,如有侵权请联系删除。




欢迎光临 51学通信论坛2017新版 (http://bbs.51xuetongxin.com/) Powered by Discuz! X3