|
|
|
|
移动端

2.2.1 Docker在解决什么

《Docker从入门到实战》第2章Docker简介,第1章已经大致了解了容器技术,在本章节中,我们将进一步认识Docker的架构,以及了解Docker与其他容器技术的区别。本节为大家介绍Docker在解决什么。

作者:黄靖钧来源:机械工业出版社|2017-10-17 18:17

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享

2.2  Docker的功能及优缺点

说了那么多,Docker到底可以用来做什么,或者说为什么要使用Docker?Docker与LXC或其他容器技术相比,优势在哪里?与虚拟机技术相比,Docker有哪些优势与不足?以上问题读完本节可以得到答案。

2.2.1  Docker在解决什么

从表面看,最直观的一点是,以前开发软件时,各种依赖环境都要考虑到,开发好之后迁移到另一台机器上却不能运行,而Docker解决了运行环境和配置、依赖等问题,使软件发布迁移容易了许多。

第二点就是更轻量的虚拟化,节省了虚拟机的性能损耗,却得到了和虚拟机差不多的隔离环境。

第三点,用第1章提到的集装箱做比喻,在一艘大船上,集装箱可以把货物规整地摆放起来并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响,因此就不需要专门运送水果的船和专门运送工业品的船了。只要这些货物在集装箱里封装好,那么就可以用一艘大船把它们都运走。在这一点上,Docker还解决了软件调度分发的问题。

第四点,更高的资源利用率。服务自身和依赖环境对资源的浪费,以及服务没有利用到的空闲资源往往是资源利用率低下的罪魁祸首。现实情况下资源被拆分成一台台计算机,服务也要跟着拆分。当服务的拆分不能保证和资源拆分相同的粒度时,空闲资源就产生了。

服务拆分的粒度越粗,与资源不匹配的矛盾会越激烈;拆分粒度越细,带来的资源浪费也就越多。另一方面,服务内聚提高会带来更高的耦合度和风险,反之会带来更高的部署和维护成本等。而Docker结合微服务带来了一个希望,以极小的代价换取极大的资源利用率。

总结起来就是,Docker带来了更高效的服务部署、启动方式、简化配置,在容器中开发完成后快速部署于各主流系统,解决了依赖问题;对CPU、内存、网络和文件系统的隔离使其成为可替代虚拟机技术的选项之一,机器资源利用率的提高,不需要为虚拟一个环境而耗费大量资源。

由于Docker本身带来了这两点好处,通过Docker和相关的生态系统,可以更简单地实现对系统的监控,把管理对象由“机器”改为抽象的“资源”,基于对资源的抽象,提供更灵活的服务部署、调度机制。这也改变了传统应用交付的方式,软件的开发和管理从部门间的装配和调试转换为部件的简单替换。软件的管理和共享从代码层次向应用层次上升,给了我们更多的选择自由性,使软件架构更加灵活。

其实,与其纠结于Docker在解决什么,不如拆分成两个问题:我们要做什么?Docker能帮我们做什么?

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

SQL应用与开发标准教程

本书主要介绍了SQL的数据库应用和开发技术,内容涉及关系数据库和SQL概述,SQL环境,SQL对于数据表的操作,数据库查询知识,SQL数据的修改...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊