Linux容器进入市场已经有一段时间了,而其和Docker等公司推出的应用集装箱在技术方面有哪些区别呢?
虚拟化技术已经对现代计算环境产生了深远影响,其可以帮助企业大幅度提升计算资源的利用率和灵活性。但是,虚拟化技术还会伴随产生像hypervisor和客户端操作系统这样的额外开销——而这两种组件都会大量占用至关重要的内存资源,并且需要购买昂贵的授权——导致平均每台虚拟机消耗更多的资源,限制服务器能够容纳的虚拟机数量。而集装箱技术的重新出现就是为了在不借助这些额外组件的情况下实现应用程序虚拟化。这并不是一种新技术,像OpenVZ、FreeBSD、Solaris Containers和Linux-VServer这样的操作系统几年之前就开始支持这种功能,并且将其作为云计算可扩展性的核心元素。但是像Docker这样最近出现的开放式平台却开始关注于集装箱及其对于可扩展分布式应用程序的潜在影响。
Linux kernel 2.6.24当中已经包含了对于集装箱的底层支持,提供操作系统级别的虚拟化功能、允许单台主机运行多个相互隔离的Linux实例,这种技术被称为Linux容器(LXC)。LXC基于Linux控制组(cgroups)的概念,每个控制组都可以为应用程序提供完整的资源隔离(包括处理器、内存和输入/输出访问),并且不需要依赖于完整的虚拟机。Linux容器还提供了对于容器命名空间的完全隔离,所以一些通常和操作系统相关的支持功能,比如文件系统、用户ID、网络ID和其他元素等,在每个容器当中都是唯一的。
像Docker这样的应用集装箱平台并不会代替现有的Linux容器。相反,应用集装箱将LXC作为基础,在上层加入一些高级特性。比如,像Docker这样的平台支持应用程序在(同样运行Docker的)主机之间相互迁移,允许应用程序及其组件以可移动组件的形式存在。虽然LXC自身支持迁移特性,但是编译功能却和操作系统的配置相关,因此如果将编译模块移动到另外一台配置不同的主机上,可能会使得应用程序无法按照之前的模式运行(如果有的话)。
其他方面,Docker还提供了自动编译工具,帮助开发者实现从源代码到容器的轻松转换,使用Chef、Maven、Puppet以及其他一些相关辅助工具还可以实现编译的自动化和流程化。版本控制功能可以帮助开发人员跟踪容器版本的发展过程,比较不同版本之间的差异,甚至在必要时恢复到之前 的版本。因为任何容器都可以作为其他容器的根镜像,因此通过公共注册组件进行共享,可以轻松实现组件的重复使用。
因此,像Docker这种平台的首要目标是将应用程序快速整合到容器当中,并且维护或者更新这些应用程序容器不断发展,而并不是支持现有的容器——那是Liunx内核的一部分。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
超越Docker和Kubernetes:容器生态系统不断发展
在过去几年,容器走过了漫长的道路–从利基技术发展成为部署现代云原生应用和服务的关键平台,而随着部署 […]
-
描绘VMware容器未来蓝图:VIC与Pivotal
容器技术已经推出几年了,而且其原理很容易理解。容器成本低、运行速度快、易于部署而且承诺提供更大的可扩展性。在容器需求量持续增加期间,VMware开发了自己的容器平台以满足不断增长的需求—vSphere集成容器(VIC)以及Photon Platform。
-
从OpenStack Ocata看容器技术的走势
然而2017年2月,OpenStack社区却突然发布了OpenStack的第15个版本Ocata。这一版本的发布,与上一版本的发布时间间隔只有四个月。
-
VMware云应用业务线副总裁Kit Colbert访谈录
容器席卷IT行业,顾客厂商都在争相将容器集成到现有基础设施中。VMware就是这样一家试图跟上最新趋势的公司,VMware公司承诺向顾客提供一种熟悉的管理容器的方式。