阅读更多

0顶
0踩

开源软件

转载新闻 八个Docker的真实应用场景

2015-01-07 16:16 by 正式编辑 cao345657340 评论(0) 有5649人浏览

【编者的话】Flux 7介绍了常用的8个Docker的真实使用场景,分别是简化配置、代码流水线管理、提高开发效率、隔离应用、整合服务器、调试能力、多租户环境、快速开发。我们一直在谈Docker,Docker怎么使用,在怎么样的场合下使用?也许本文可以帮到你。有需要交流的地方,可以通过评论与我们交流。



几周前我们参加了DockerCon ,Dockercon是首个以Docker为中心的技术大会。它面向开发者以及对在Docker开放平台上构建、交付、运行分布式应用感兴趣的从业者,不论这些开放平台是运行于自用笔记本上或者是数据中心的虚拟机上。我们参加了这次大会,Flux7是Docker基础的系统集成合作伙伴,同时也是演讲嘉宾。


我们的CEO Aater Suleman和我们的一位客户一同进行了演讲。虽然DockerCon大会十分有趣,但我觉得大会太关注Docker的具体细节,而忽略了Docker的使用场景。所以,在这篇文章中,我想介绍并分享一些Docker的实际应用案例。

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

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

首先你在享有Docker带来的虚拟化能力的时候无需担心它带来的额外开销。其次,相比于虚拟机,你可以在同一台机器上创建更多数量的容器。

Docker的另外一个优点是容器的启动与停止都能在几秒中内完成。Docker公司的创始人 Solomon Hykes曾经介绍过Docker在单纯的LXC之上做了哪些事情,你可以去看看。

下面是我总结的一些Docker的使用场景,它为你展示了如何借助Docker的优势,在低开销的情况下,打造一个一致性的环境。

 

1. 简化配置

 

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

 

2. 代码流水线(Code Pipeline)管理

 

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

 

3. 提高开发效率

 

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

不同的开发环境中,我们都想把两件事做好。一是我们想让开发环境尽量贴近生产环境,二是我们想快速搭建开发环境。

理想状态中,要达到第一个目标,我们需要将每一个服务都跑在独立的虚拟机中以便监控生产环境中服务的运行状态。然而,我们却不想每次都需要网络连接,每次重新编译的时候远程连接上去特别麻烦。这就是Docker做的特别好的地方,开发环境的机器通常内存比较小,之前使用虚拟的时候,我们经常需要为开发环境的机器加内存,而现在Docker可以轻易的让几十个服务在Docker中跑起来。

 

4. 隔离应用

 

有很多种原因会让你选择在一个机器上运行不同的应用,比如之前提到的提高开发效率的场景等。

我们经常需要考虑两点,一是因为要降低成本而进行服务器整合,二是将一个整体式的应用拆分成松耦合的单个服务(译者注:微服务架构)。如果你想了解为什么松耦合的应用这么重要,请参考Steve Yege的这篇论文,文中将Google和亚马逊做了比较。

 

5. 整合服务器

 

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

 

6. 调试能力

 

Docker提供了很多的工具,这些工具不一定只是针对容器,但是却适用于容器。它们提供了很多的功能,包括可以为容器设置检查点、设置版本和查看两个容器之间的差别,这些特性可以帮助调试Bug。你可以在《Docker拯救世界》的文章中找到这一点的例证。

 

7. 多租户环境

 

另外一个Docker有意思的使用场景是在多租户的应用中,它可以避免关键应用的重写。我们一个特别的关于这个场景的例子是为IoT(译者注:物联网)的应用开发一个快速、易用的多租户环境。这种多租户的基本代码非常复杂,很难处理,重新规划这样一个应用不但消耗时间,也浪费金钱。

使用Docker,可以为每一个租户的应用层的多个实例创建隔离的环境,这不仅简单而且成本低廉,当然这一切得益于Docker环境的启动速度和其高效的diff命令。

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

 

8. 快速部署

 

在虚拟机之前,引入新的硬件资源需要消耗几天的时间。Docker的虚拟化技术将这个时间降到了几分钟,Docker只是创建一个容器进程而无需启动操作系统,这个过程只需要秒级的时间。这正是Google和Facebook都看重的特性。

你可以在数据中心创建销毁资源而无需担心重新启动带来的开销。通常数据中心的资源利用率只有30%,通过使用Docker并进行有效的资源分配可以提高资源的利用率。

原文链接:8 Ways to Use Docker in the Real World

  • 大小: 77.9 KB
来自: dockerone
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 2.Docker的应用场景有哪些?

    在这里我重点介绍下Docker作为内部开发环境的场景: 在容器技术出现之前,公司往往是通过为每个开发人员提供一台或者多台虚拟机来充当开发测试环境。开发测试环境一般负载较低,大量的系统资源都被浪费在虚拟机本身...

  • Docker 的 8 个应用场景,真香啊!

    Flux 7在本文中介绍了常用的8个Docker的真实使用场景,分别是简化配置、代码流水线管理、提高开发效率、隔离应用、整合服务器、调试能力、多租户环境、快速开发。小伙伴们有兴趣想了解内容和更多相关学习资料的请...

  • 八个 Docker 的真实应用场景

    【编者的话】Flux 7介绍了常用的8个Docker的真实使用场景,分别是简化配置、代码流水线管理、提高开发效率、隔离应用、整合服务器、调试能力、多租户环境、快速部 署。我们一直在谈Docker,Docker怎么使用,在怎么样...

  • Docker 的 8 个应用场景,看看你知道几个?!

    6、调试能力 7、多租户环境 8、快速开发 Flux 7在本文中介绍了常用的8个Docker的真实使用场景,分别是简化配置、代码流水线管理、提高开发效率、隔离应用、整合服务器、调试能力、多租户环境、快速开发。 以下为原文...

  • Docker 的 8 个应用场景,真香啊...

    Flux 7在本文中介绍了常用的8个Docker的真实使用场景,分别是简化配置、代码流水线管理、提高开发效率、隔离应用、整合服务器、调试能力、多租户环境、快速开发。 这几天群里都在讨论Docker的应用场景,转载这篇文章...

  • Docker学习总结(11)——八个Docker的真实应用场景

    几周前我们参加了DockerCon...它面向开发者以及对在Docker开放平台上构建、交付、运行分布式应用感兴趣的从业者,不论这些开放平台是运行于自用笔记本上或者是数据中心的虚拟机上。我们参加了这次大会,Flux7是Do

  • AXX_AIAPI-1.0.5-py3-none-any.whl.zip

    AXX_AIAPI-1.0.5-py3-none-any.whl.zip

  • Acquisition-4.12-cp310-cp310-manylinux_2_5_i686.whl.zip

    Acquisition-4.12-cp310-cp310-manylinux_2_5_i686.whl.zip

  • Acquisition-4.13-cp37-cp37m-manylinux_2_5_x86_64.whl.zip

    Acquisition-4.13-cp37-cp37m-manylinux_2_5_x86_64.whl.zip

  • gbkfonts.zip

    将TTF 汉字字体生成可供 TeX 使用的汉字 Type1 字体的转换软件。是使用Texlive运行Ctex模板的准备工作。

  • 美国大学生数学建模竞赛(MCMICM)

    美国大学生数学建模竞赛(MCMICM)。

  • MONSTER PACK VOL 5 1.01怪物包第5卷游戏模型资源包unitypackage项目

    MONSTER PACK VOL 5 1.01怪物包第5卷游戏模型资源包unitypackage项目 支持Unity版本2018.4.2或更高 包含在 Monster Full Pack 第 1 卷中*** 该包当前包含 5 个怪物。 包括: Bufomorph Drackmahre Morphorrid Pardathrox Perderos

  • 二维拓扑优化设计的后处理和平滑清晰几何图形的提取

    拓扑优化结果提取、设计结果CAD重构、边界提取、设计制造一体化; 二维拓扑优化设计的后处理和平滑清晰几何图形的提取; 适用于SIMP法、水平集法等典型拓扑优化方法。

  • ASP.NET《数据库原理及应用技术》课程指导平台的开发(源代码+参考文章).zip

    ASP.NET《数据库原理及应用技术》课程指导平台提供一个交互性强、功能丰富的在线学习环境,以促进数据库原理及应用技术的教学与学习。 在开发过程中,平台严格遵循软件工程的思想,从系统需求分析、概要设计、详细设计到具体的编码实现和后期的代码优化、功能测试,都经过了精心的规划和实施。源代码是平台开发的核心,它采用了ASP.NET技术,确保了平台的稳定性和可扩展性。同时,源代码也体现了良好的编程规范和风格,易于理解和维护。

  • 自然语言,数据清洗后存储成jsonl格式文件

    自然语言,数据清洗后存储成jsonl格式文件

  • 大创大纲资料.txt-大创

    大创大纲资料.txt-大创

  • AX3_Email-1.0.6-py3-none-any.whl.zip

    AX3_Email-1.0.6-py3-none-any.whl.zip

  • AX3003P-0.1-py3-none-any.whl.zip

    AX3003P-0.1-py3-none-any.whl.zip

  • 小学Scratch游戏化教学的实践研究-以泰州市Y小学为例

    随着智能教育时代的到来,计算机教育击彴祀勺中小学生必不可少的课程。我国陆续出台的文件,均指向鼓励在基础教育阶段开展编程课程。Scratch软件作为一种新型编程工具,以其简单易学、趣味性强等特点深受广大青少年丿谨i喜爱。但在日常教学中发现,传统讲授式教学方式不能长期维待学生学习兴趣,妇比以往学习效果大打折扣。2022年出版的《义务 教育信息科技课程标准》中明确指出,要求教育工作者创新教学方式,创设真实情境以提高 学生学习参与度。游戏化教学这种创新型教学方式, 在与各学科良好的结合效果下,也逐渐进入信息教育者的视野。因此本研究旨在将游戏化元素融入Scratch课堂,探究 Scratch游戏化教学设计一般流程在行动中不断峦进, 以期得到有效实施的策略和建议。 通过三轮行动研究,验证了小学Scratch游戏化教学的一般流程。同时总结出游戏化教学 应用策略,包括在游戏化教学设计时需要合理制定游戏规则,以控制课堂纪律和给予学生适当激励;明确小组分工,学生各司其职,在组内合作和组间竞争中培养学生合作精神;采用多元化评价方式,综合运用纸笔测试和个性创作等方法自评与他评相结合的方式,增强学 生自主学习能

Global site tag (gtag.js) - Google Analytics