为什么选择Docker?

容器并不是什么新鲜事物,但是实现它们总是比需要的要复杂一些。 Docker在简化容器方面取得了长足的进步,并从此引爆了整个世界。 让我们看看为什么。

为什么Docker成为家喻户晓的名字

Docker不是很老。 2014年5月,当我写了一篇煽动性博客文章Docker是Heroku Killer时 ,它即将达到1.0版本。几周后的后续行动叫做Tempering My Docker Enthusiasm 。 旁注, Heroku仍然很棒,我对Docker的热情很强。 Heroku现在也支持Docker 。

自2014年6月发布1.0版以来,Docker甚至在谷歌,微软,亚马逊,思科,惠普,IBM,RedHat,VMWare等公司的共同努力下,以Docker为核心开发了 “云”。 那是不平凡的首次亮相。

有什么大不了的?

深入研究,Docker允许将应用程序隔离到容器中,并提供有关它们生存所需的确切说明,可以轻松地在机器之间移植。 虚拟机也允许完全相同的事情,并且已经存在诸如Chef和Puppet之类的许多其他工具,以使这些配置的构建可移植且可再现。

尽管Docker与这两者相比都具有更简化的结构,但造成中断的真正领域是资源效率。

如果要运行30个Docker容器,则可以在单个虚拟机上全部运行它们。 要运行30个虚拟机,您必须引导至少具有最低可用资源要求的30个操作系统,然后再将虚拟机管理程序分解为可在基本OS上运行的虚拟机。

仅假设您要使用最少256M的VM,您将使用具有30个不同OS内核来管理资源的7.5G RAM。 使用Docker,您可以为一个VM分配大量RAM,并有一个OS来管理那些相互竞争的资源……并且您可以在基本操作系统上完成所有这些工作,而无需完全参与昂贵的虚拟机管理程序。

现在,所有这些听起来对单个计算机上的竞争资源都很好,但是一对一的比较又如何呢? Boden Russell正是这样做的: 对Docker vs KVM进行基准测试 。 Docker赢得了26比1的性能提升。

要记住的一个关键因素是,由于与Linux内核的紧密集成,Docker能够执行其操作。 它在低水平上具有显着的效率,因此,Docker不能(当前)替代Windows,OS X等虚拟机。在非Linux机器上运行Docker容器时,它们将在内部运行通过boot2docker虚拟机。

这些类型的效率提升可与亚马逊等云提供商并在每小时出售的虚拟机上将性能提高26比1的产品相提并论。 对于他们的业务而言,这是一个巨大的推动力,因为您突然就能以相同的价格做更多的事情。 无需为需要部署的每个隔离应用程序购买两个虚拟机(以实现负载平衡/可用性),您只需将三个更大的VM群集在一起,然后将所有虚拟机部署到其中,实际的处理器限制就可以了。

当企业围绕云迁移制定成本效益决策时,这会极大地推动云提供商的发展……从而产生了混乱。

Docker实现一致的环境

Docker如此具有破坏性的另一个原因是可移植性。 至此,我们主要讨论了云提供程序,但是使用了较早的示例,即需要30个容器才能运行30个虚拟机……请考虑您的开发计算机。

随着微服务在开发领域的爆炸式增长,很有可能在笔记本电脑上进行开发会涉及同时启动其中几种服务才能正常工作。 Vagrant在每个VM的基础上提供了帮助,但是如果我需要启动四个或五个不同的微服务以在本地工作,这意味着我需要在笔记本电脑上运行四个或五个虚拟机,然后再进行其他工作。 使用Docker,可以简化为更易于管理的单个VM。

复制在开发中建立的生产所面临的永恒挑战突然变成现实。 容器本身可以在与机器上的其他容器对话的许可下启动。 每个端口都可以拥有自己的单独端口,这些端口可以公开开放,甚至可以共享基本操作系统的资源。

这就是Docker在启用持续集成,交付和部署管道方面提供巨大帮助的原因。 实际情况如下:

  • 您的开发团队能够在易于编写的Dockerfile中为微服务创建复杂的需求。
  • 将代码推送到您的git repo。
  • 让CI服务器将其拉下并构建EXACT环境,该环境将用于生产环境中以运行测试套件,而无需完全配置CI服务器。
  • 完成后将其全部拆除。
  • 将其部署到测试人员的暂存环境中,或仅通知测试人员,以便他们可以运行单个命令以在本地配置和启动环境。
  • 放心地将您在开发,测试和过渡到生产中所拥有的一切完全滚动​​,而无需担心机器配置。

许多不同的单独语言已采取步骤以在其语言的泡泡内实现这种类型的工作流程。 例如,Java拥有容器化的应用程序服务器已有十多年了,但是Docker在所有基于Linux的语言中都启用了它。

那……是巨大的。

Docker不会消失

跳上“外观,新技术流行语”潮流很容易,但是Docker仍然存在。 该行业正在全力以赴地对该技术进行重大投资,并且正在Swift采用。

当像Amazon这样的公司发布自己的容器服务时, 像Tutum这样的公司利用容器的可移植性来创建一个平台,该平台使您可以在AWS,Microsoft Azure,Digital Ocean的任何云提供商上使用Docker,甚至可以在您的服务器上对其进行自定义拥有。 顺便说一下,Tutum最近刚刚被Docker收购 。

这就是Docker改变游戏规则的原因。 它解决了很多问题,这些问题阻碍了团队有效地合作,并在降低成本的同时做到了。

翻译自: https://www.javacodegeeks.com/2015/11/why-docker.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356786.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全字符微信名 php,PHP方法处理微信昵称特殊符号过滤

我们在通过PHP获取微信昵称,并且存于数据库的时候,由于一些昵称带有特殊符号,所以存不进去,这时候我们可以通过下面的方式来处理。方法二protected function removeEmoji($clean_text) {// Match Emoticons$regexEmoticons /[\x{…

[转载]我的PMP复习备考经验谈(下篇)——一本关于PMP备考的小指南

原文地址:我的PMP复习备考经验谈(下篇)——一本关于PMP备考的小指南作者:羽少宸PMP复习备考经验谈(下篇)——PMP备考小指南 总结经验,展望未来,以此纪念PMP复习备考时光 继上篇,猛击直达四、如何…

java如何抽象一辆车,java新职篇:面向对象之抽象

面向对象编程的一个实质性的要素是抽象。人们通过抽象(abstraction)处理复杂性。例如,人们不会把一辆汽车想象成由几万个互相独立的部分所组成的一套装置,而是把汽车想成一个具有自己独特行为的对象。这种抽象使人们可以很容易地将一辆汽车开到杂货店&am…

Test on 09/04/2016

滑稽树 (huajitree.pas/c/cpp) 【问题描述】 JZYZ的湖畔边有一棵滑稽树,每年的冬天滑稽树上都会长出很多个滑稽果。我们用一个二维平面N,M描述每个滑稽果所能落下的位置,即每个滑稽果不可能落到我们所描述的二维平面之外。 滑稽大师cdc钟爱于收集滑稽…

php项目私有化部署保护代码,ThinkPHP项目安全配置解决方案

前言:ThinkPHP MVC框架越来被开发者接受,众多的开发者选择了这个框架,也有很多的优秀项目使用的ThinkPHP框架。最近整理了一下ThinkPHP项目的一些安全配置。可能并不适用全部项目,大家可以适当的使用如下的安全配置。前置知识:web容器和各类组件的版本&a…

Apache-SimpleEmail 简单应用

比JavaMail使用方法要直接,jar包只需要在JavaMail的基础上添加commons-email-1.4.jar即可。 代码: // QQ邮箱发送邮件 SimpleEmail simpleEmail new SimpleEmail(); simpleEmail.setHostName("smtp.qq.com"); simpleEmail.setAuthentication(…

php7.0 百度百科,PHP 7.0.10正式发布

原标题:PHP 7.0.10正式发布PHP 7.0.10 正式发布了。下载地址:http://php.net/distributions/php-7.0.10.tar.gz改进日志如下:- Core:. Fixed bug #72629 (Caught exception assignment to variables ignores references). (Laruence). Fixed …

javascript中构造函数的说明

1.1 构造函数是一个模板 构造函数,是一种函数,主要用来在创建对象时对 对象 进行初始化(即为对象成员变量赋初始值),并且总是与new运算符一起使用。 1.2 new 运算符 new运算符创建一个新对象。关键字new后跟随一个函数…

大数据分析 es hive_使用Hive和iReport进行大数据分析

大数据分析 es hive每个JJ Abrams的电视连续剧疑犯追踪从主要人物芬奇先生一个下列叙述情节开始:“ 你是被监视。 政府拥有一个秘密系统-每天每天每小时都会对您进行监视的机器。 我知道是因为...我建造了它。 “当然,我们的技术人员知道得更多。 庞大的…

datetime unix php,PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】...

本文实例讲述了PHP基于DateTime类解决Unix时间戳与日期互转问题。分享给大家供大家参考,具体如下:这个问题主要在32位的系统下出现,64位的不存在这样的问题。php 5.2提供了DateTime类来处理这样的问题,参考方案如下(请注意时区的处…

Java中的使用了未经检查或不安全的操作

1。 javac -Xlint:unchecked MyMath.java检查不安全的操作 /***************************************************/ MyMath.java:29: 警告: [unchecked] 对作为原始类型ArrayList的成员的add(E)的调用未经过检查 array.add("1"); ^ 其中, E是类型变量: E扩展已在类 …

java+jsp+网页制作,java+jsp+mysql网页制作总结(2)

错误:url通过get传递时汉字出错解决:url通过get传递时汉字会乱码,1.String name1request.getParameter("name");String name new String(name1.getBytes("ISO-8859-1"),"gbk");2.通过post传递参数错误&#x…

Analyzing Storage Performance using the Windows Performance Analysis ToolKit (WPT)

https://blogs.technet.microsoft.com/robertsmith/2012/02/07/analyzing-storage-performance-using-the-windows-performance-analysis-toolkit-wpt/转载于:https://www.cnblogs.com/zengkefu/p/5864455.html

Redis聚类

本文是我们学院课程的一部分,标题为Redis NoSQL键值存储 。 这是Redis的速成班。 您将学习如何安装Redis并启动服务器。 此外,您将在Redis命令行中乱七八糟。 接下来是更高级的主题,例如复制,分片和集群,同时还介绍了…

Java宣言的时候,Java基础恶补——宣言及访问控制

Java基础恶补——声明及访问控制[SCJP Sun Certified Programmer for Java 6 Study Guide (Exam 310-065)] chapter 1一. 标识符1. 标识符只能由字母、下划线、货币符号、数字组成,除数字外其余均可作为标识符的开头符号。(PS:汉字作为标识符也是合法的…

域策略禁用usb

文档及模板可在 http://pan.baidu.com/s/1qYTcjTy 下载 pro_usb_users.adm 此模板可禁用到 指定盘符,针对用户策略 pro_usb_computers.adm 此模板 针对计算机,一般只要它就好了。 可以从 3 个方面下手 adm 配置 文件。注册表usb驱动其实 adm配置文件&…

java常用代码,Java常用代码

Java常用代码/*** author he*** 把Date转换成String,以yyyy-MM-dd HH:mm:ss的形式显示*/public static String DateToString(Date tempDate) {String date_str "";SimpleDateFormat formatter new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); …

【Effective Java】6、使用复合优先于使用继承

这个,不管是什么书都会这样说,因为常常我们并不需要继承,而只是想把类进行一定的扩展,而我们想扩展的属性或方法对应的类都有,这个时候如果两者是is a的关系,这种关系是确实存在的,那么就可以使…

php遍历数组的四种方法,PHP遍历数组的常见几种方法

小白发博文,看到某个知识点,就当复习下。$arrarray(football > well,swimming>very well,run>not well);第一种方法:foreach遍历数组:foreach($arr as $key>$val){echo $key.-----.$val.;}第二种方法:…

java调用wadl_Java中的WADL:温和的介绍

java调用wadlWADL( Web应用程序描述语言 )对REST而言,WSDL对SOAP而言。 这种语言的存在引起了很多争议(请参阅: 我们需要WADL吗? 或者 需要 WADL还是不需要WADL )。 我可以想到使用WADL的一些合…