下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

八个有关Docker的真实应用场景解析

作者:课课家教育     来源: http://www.kokojia.com点击数:1217发布时间: 2017-07-02 11:00:38

标签: 开发环境部署docker应用网络管理

  下面是我总结的一些Docker的使用场景,它为你展示了如何借助Docker的优势,在低开销的情况下,打造一个一致性的环境。课课家教育平台提醒大家:大家定要认真阅读本篇文章!

八个有关Docker的真实应用场景解析_开发环境部署_docker应用_网络管理_课课家教育

  在这篇文章中,课课家教育平台想介绍并分享一些Docker的实际应用案例。

  在我们讨论Docker的使用场景之前,先来看看Docker这个工具有什么特别的地方吧。

  Docker提供了轻量级的虚拟化,它几乎没有额外开销,这个特性非常酷。

  首先你可以在享有Docker带来的虚拟化层的时候却不用担心因此而带来的额外开销。第二个优点是比之虚拟机,你能在单一机器上启动更多数量的容器。

  另外一个强有力的影响是容器的启与停都能在几秒中完成。Docker公司的创始人, Solomon Hykes,曾经概括过Docker在单纯的LXC之上做了哪些事情。

  下面这些Docker的使用场景,为你展示了如何借助Docker的强力,在非常低的额外开销的情况下,打造一个一致性的环境。

  知识分享:Docker历史沿革

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

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

  Docker自2013年以来非常火热,无论是从 github 上的代码活跃度,还是 Redhat在RHEL6.5中集成对Docker的支持, 就连 Google 的 Compute Engine 也支持 docker 在其之上运行。

  一款开源软件能否在商业上成功,很大程度上依赖三件事 - 成功的 user case, 活跃的社区和一个好故事。 dotCloud 自家的 PaaS 产品建立在 docker之上,长期维护且有大量的用户,社区也十分活跃。

  面对上述几个问题,docker设想是交付运行环境如同海运,OS如同一个货轮,每一个在OS基础上的软件都如同一个集装箱,用户可以通过标准化手段自由组装运行环境,同时集装箱的内容可以由用户自定义,也可以由专业人员制造。这样,交付一个软件,就是一系列标准化组件的集合的交付,如同乐高积木,用户只需要选择合适的积木组合,并且在最顶端署上自己的名字(最后个标准化组件是用户的app)。这也就是基于docker的PaaS产品的原型。

  1. 简化配置:

  这是Docker公司宣传的Docker的主要使用场景。虚拟机的一个最大好处是能在你的硬件设施上运行各种配置不一样的平台。Docker在降低额外开销的情况下提供了同样的功能。它能让你将你的运行环境和配置放在代码里面然后部署。同一个Docker的配置可以使用在不同的环境里面。这样就降低了硬件要求和应用环境之间耦合度。

  2. 代码流水线管理:

  前一个场景对于管理代码的流水线起到了很大的作用。代码从开发者的机器到最终在生产环境上的部署,需要流过很多的中间环境。而每一个中间环境都有自己微小的差别,Docker给应用提供了一个从开发到上线均一致的环境,让代码的流水线变得轻松不少。

  3. 提升开发者效率:

  这就带来了一些额外的好处 - Docker能提升开发者的开发效率。如果你想看一个详细一点的例子,可以参考Aater在DevOpsDays Austin 2014 大会或者是DockerCon上的演讲。

  不同开发者的环境中,我们想把两件事做好,但却各自差别不小。我们想让开发环境尽量贴近生产环境,我们想开发环境尽量的以便开发中的交互使用。

  理想状态中,要达到第一个目标,我们需要将每一个服务跑在独自的虚拟机中以便显现生产环境中服务的运作状态。然而,我们却不想每次必须要需要网络连接,每次重新编译的时候远程连接上去干事情特别麻烦。这就是Docker做的特别好的地方,开发环境通常内存不足,没有像虚拟机那般贪婪的占用内存,Docker可以轻易的让几十个服务在Docker中跑起来。

  4. 隔离应用:

  有很多种原因会让你结果选择在一个机器上跑着不同的应用。一个场景便是早期描述的一个便于提高开发者开发效率,但是还有其他的场景。

  有两个需要考虑的便是因为降低成本的需要而进行的服务器整合,和将一个一体化的应用渐进式的拆分成无耦合的单块的计划。

  5. 整合服务器:

  正如使用虚拟机来整合多个应用,Docker隔离应用的能力使Docker能整合多个服务器以达到降低成本的效果。由于没有多个操作系统的内存占用,以及能在多个实例之间共享没有使用的内存,Docker能比虚拟机方案提供更好的服务器整合。

  6. 调试能力:

  Docker提供了很多的工具,他们不一定只是只针对容器,但是他们针对容器这个概念却工作的十分好。他们同时也提供了十分有效的功能,这包括可以为容器设置检查点,设置版本,和查看两个容器之间的差别。这些特性在于查修bug的时候会十分有效。你可以在Docker拯救世界的文章里找到这一点的例证。

  7. 多租户环境:

  另外一个Docker有意思的使用场景是在多租户的应用中,可以避免关键应用的重写。我们一个特别的关于这个场景的例子是是为IoT的应用开发一个快速,易用的多租户环境。这种多租户的原代码库远超人想象的复杂,逻辑写死,接手太难。将一个应用重新架构不但消耗时间,也浪费金钱。

  使用Docker,为每一个租户的应用层的多个实例创建隔离的环境简单且成本低廉。这之所以可能,跟Docker环境的启动速度和其高校的对比命令是有关的。

  你可以在这里了解关于此场景的更多信息。

  8. 快速开发:

  在虚拟机之前,引入新的硬件资源需要耗费几天的时间。虚拟化技术将这个时间降到了几分钟,Docker通过只是为进程创建一个容器无需启动操作系统,将这个时间降到了几秒钟。这就是Google和Facebook都不得不用的黑科技。

  你可以在你的数据中心创建销毁资源而无需担心重新启动的开销。通常数据中心的资源利用率为30%,依靠更加有效的资源分配将将这个数字提升不会很难。并且,创建一个新的实例能更加有效的实现资源分配。

还有更多的Docker的应用场景记录于各种文章里面。你可以在此发现更多的案例研究。

  还有更多的Docker的应用场景记录于各种文章里面。你可以在此发现更多的案例研究。

  对于我们来说,使用Docker的动机永远是选择正确的工具应用到工作中。最有意思的部分是业务场景,然后我们在业务场景上发挥工具的最大效能。

      小结:其实大家想要了解并学习更多相关方面的知识,私下自己还得多多自学,当然如果大家想要了解更多相关方面知识的话呢,不妨关注课课家教育平台!在这里,你定会有意想不到的收获的!

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程