- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
为什么追捧容器技术
在英文中容器被译为“Container”,与“集装箱”使用的是同一个单词,解释为一种可以装货的容器或盒子。对于容器的概念,有人会觉得难以理解。但是如果将容器换做集装箱,理解起来会更简单。从本质上讲,“容器”和“集装箱”没有太大区别,不同的是容器打包的是“应用及其依赖的包”,让应用变成一种标准化的组件,摆脱与系统之间的紧耦合关系,能在任何主流系统中开发、调试和运行。
2013年,随着开源应用容器引擎Docker第一个版本的发布,容器这种能够打包应用和隔离运行环境的技术就引起了开发者的高度关注。由此推动容器技术就进入了快速发展期,这背后的动力源自于越来越多的碎片化工业应用和分布式部署需求。
回顾十年前,那时候的制造企业更多关注的是ERP、PLM、CRM等大型应用软件的开发和部署,这些软件模块多,功能复杂,开发周期长,实施过程复杂,而且采用集中式应用部署方式。在平台的选择上,主要以传统服务器为主,应用软件和平台系统之间是紧耦合关系,并不存在应用迭代和平台迁移需求。
但近年来,随着智能制造的推进,企业开始关注工厂的智能化转型,在工业生产领域,不同企业的工厂生产特点各不相同,而且呈现出的是零散和碎片化的个性化应用需求,部署环境也存在多样性,如虚拟化服务器、公有云、私有云等。因此,要像ERP、PLM、CRM等软件开发和应用那样,利用传统的软件开发手段针对极具个性化的工业应用场景打造通用化的应用软件,其实并不可行。而且在传统的应用开发和部署模式下,应用软件与部署环境之间存在紧耦合依赖关系,对应用在运行过程中的动态迁移,以及不同服务在不同环境中的适配带来了巨大挑战。因此,像容器这种能通过打包应用及依赖包,实现“一次开发,到处运行”的技术受到了用户的积极追捧。
主流容器技术Docker
近年来,以Docker为代表的容器技术已经深入人心,无论是传统IT企业还是互联网企业,商业巨擘亦或是初创公司,大家都以饱满的热情投入到Docker容器技术的讨论和探索中来,围绕Docker相关的技术,不仅有像微软、IBM、Amazon和Google等国际著名云厂商支持Docker技术,国内像腾讯,阿里,百度等也相继加入Docker的阵营。国内基于Docker的成功应用案例也逐渐开始浮出水面。为构建具备弹性扩展能力的PaaS平台提供了很多值得借鉴的宝贵经验。
虚拟机和Docker比较
从结构来看,虚拟机的操作系统和Hypervisor在Docker中已经被Docker引擎所取代。虚拟机实现资源隔离的方式是利用Hypervisor虚拟化服务器的CPU、内存、IO等设备。而Docker就简单得多,Docker引擎可以看成Linux的namespace、cgroup和镜像管理文件系统的封装,Docker并没有和虚拟机一样利用一个完全独立的操作系统实现环境隔离,利用的是目前linux内核本身支持的容器方式实现的资源和环境隔离,简单的来说,Docker就是利用namespace实现的系统环境的隔离,利用cgroup实现资源限制,利用镜像实现根环境的的隔离。
内核虚拟化技术
具体来讲,Docker底层的核心技术包括Libcontainer(LXC),这是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源。LXC的两大组件包括命名空间(Namespaces),由IBM贡献,以及控制组(Controlgroups),由Google贡献。
命名空间(Namespaces)是Linux内核一个强大的特性。每个容器都有自己单独的命名空间,运行在其中的应用都像是在独立的操作系统中运行一样。命名空间保证了容器之间彼此互不影响,包含容器间PID资源隔离、网络隔离、IPC资源隔离、文件目录隔离、主机名和域名隔离、用户和组的隔离。
控制组(cgroups)主要用来对共享资源进行隔离、限制、审计等。只有能控制分配到容器的资源,才能避免当多个容器同时运行时的对系统资源的竞争。可对容器使用的CPU、内存和网络等资源进行管理控制。
正如所有应用都需要文件系统支撑一样,Docker采用AUFS文件系统,一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。Docker的AUFS文件系统分为两层,只有最上层是可读写的(Container),其他的层只具有读权限(Image)。
文件系统的修改
比如容器已经对A应用及其动态库打包,而随着应用需求的变化,企业需要在这个容器A进行修改,这个时候的做法是:只需要将需要将新的应用和动态库进行打包并推送到容器镜像库,在原有的容器A的基础上进行叠加和更新即可,极大的降低了应用重新开发和部署的难度。
从性能上看,由于Docker有着比虚拟机更少的抽象层,不需要H
您可能关注的文档
最近下载
- 电子产品灌封机清洁验证方案.docx VIP
- 2025脓毒症诊断与治疗规范.docx VIP
- 文件盒正面标签标识.pdf VIP
- 二元一次方程组的解法80道计算题专训(8大题型)解析版-2024-2025学年北师大版八年级数学上册.pdf VIP
- 07SD101-8 电力电缆井设计与安装.docx VIP
- 22S521 预制装配式混凝土检查井.docx VIP
- 衡力(注射用A型肉毒毒素)说明书.pdf VIP
- SL∕T19-2023水利基本建设项目竣工财务决算编制规程.pdf VIP
- GB_T50817-2013:农田防护林工程设计规范.pdf VIP
- 2022年全国新高考“八省联考”高考语文适应性试卷(河北、广东、湖北、辽宁).docx
文档评论(0)