什么是;; 木偶;; 平均值(码头工人)
如果有更好的建议或者想看更多关于综合百科技术大全及相关资讯,可以多多关注茶馆百科网。

2013年3月15日,在加州圣克拉拉举行的Python开发者大会上,dotCloud创始人兼CEO SolomonHvkes在一次五分钟的迷你演讲中首次提出了Docker的概念。当时只有40人左右(dotCloud内部人士除外)获得了使用Docker的机会。-西恩坎卡尔马提亚斯
本文导航——Docker带来的希望.10%
-码头工作流程的优势.41%
-码头工人什么都不是.65%.
-卡尔马提亚斯……89%
-肖恩凯恩……92%
编译自:https://www.oreilly.com/learning/what-is-docker作者:卡尔玛蒂亚斯,西恩卡内
译者:Cathon
这是《Docker》的节选,作者是KarlMatthias和SeanP.Kane,可能包含了一些本文没有引用的内容,因为那些是整本书的一部分。
2013年3月15日,在加州圣克拉拉举行的Python开发者大会上,dotCloud创始人兼CEO SolomonHvkes在一次五分钟的迷你演讲中首次提出了Docker的概念[2]。当时只有40人左右(dotCloud内部人士除外)获得了使用Docker的机会。
接下来的几周,关于Docker的新闻铺天盖地。然后这个项目很快就在Github[3]上打开了,任何人都可以下载并投稿。在接下来的几个月里,越来越多的业内人士开始听说Docker,以及它如何彻底改变了软件开发、交付和运营的方式。一年之内,Docker这个名字几乎无人知晓,但还是有很多人不太明白Docker是什么,为什么人们会如此激动。
Docker是一个工具,它致力于为任何应用程序创建分发版本,简化打包过程,将其部署在各种规模的环境中,并简化敏捷软件组织的工作流和响应。
虽然
Docker带来的希望
表面上被视为虚拟化平台,但Docker远不止于此。Docker涵盖了业界多个领域,包括KVM、Xen、OpenStack、Mesos、Capistrano、Fabric、Ansible、Chef、Puppet、SaltStack等技术。或许你已经发现Docker的一些竞争产品值得关注。例如,大多数工程师都不认为虚拟化产品和配置管理工具有竞争力,但Docker与这两种技术都有关系。上面列举的一些技术,经常因为提高工作效率而被人称道,引发了很多讨论。现在Docker是过去十年中使用最广泛的技术之一。如果你要把Docker和这些领域的卫冕冠军按照功能逐一比较,那么Docker看起来可能就是一个普通的竞争对手。Docker在某些领域表现更好,但它带来了一组跨越范围很广的功能来解决工作流中的许多挑战。Docker通过将应用部署工具(如Capistrano和Fabric)的易用性与虚拟化系统管理的易用性相结合,提供了一套非常强大的功能,可以轻松实现工作流自动化和流程编排。
许多新技术来来去去,所以对这些新事物保持怀疑总是好的。没有深入的研究,很容易把Docker误认为只是另一种为开发者和运营团队解决某些特定问题的技术。如果把Docker单独看成一种虚拟化技术或者部署技术,看起来并不显眼。但是Docker比看起来要强大得多。
即使是在小团队中,团队内部的沟通和相处也往往很困难。然而,在我们生活的世界中,团队内部的细节沟通是成功越来越不可或缺的因素。而一个可以降低通信复杂度,帮助开发更健壮软件的工具,无疑是一个巨大的成功。这就是Docker值得我们深入了解的原因。当然,Docker不是万能的,它的正确使用需要慎重考虑,但是Docker确实可以解决一些组织层面的实际问题,帮助公司更好更快的发布软件。使用设计良好的Docker工作流可以让技术团队更加和谐,为组织创造实实在在的利益。
那么,公司最头疼的是什么?现在很难以预期的速度发布软件,而且随着公司从只有一两个开发人员发展到几个开发团队,发布新版本时的沟通负担会越来越重,会很难管理。开发者要了解软件所处环境的复杂性,生产运营团队也需要不断了解发布软件的内部细节。这些通常是很好的工作技能,因为它们有助于更好地理解整个发布环境,从而促进软件的健壮设计。但是随着组织成长的加速,很难扩展这些技能。
充分了解所用环境的细节,往往需要团队之间大量的沟通,这并不能直接为团队创造价值。比如为了发布1.2.1版本,开发者要求运维团队升级某个特定的库,降低了开发效率,没有为公司创造价值。如果开发者可以直接升级自己的库,然后编写代码,测试新版本,最后发布软件,那么整个交付过程所花费的时间将会显著减少。
短。如果运维人员无需与多个应用开发团队相协调,就能够在宿主系统上升级软件,那么效率将大大提高。Docker有助于在软件层面建立一层隔离,从而减轻团队的沟通负担。除了有助于解决沟通问题,在某种程度上Docker的软件架构还鼓励开发出更多健壮的应用程序。这种架构哲学的核心是一次性的小型容器。在新版本部署的时候,会将旧版本应用的整个运行环境全部丢弃。在应用所处的环境中,任何东西的存在时间都不会超过应用程序本身。这是一个简单却影响深远的想法。这就意味着,应用程序不会意外地依赖于之前版本的遗留产物;对应用的短暂调试和修改也不会存在于未来的版本中;应用程序具有高度的可移植性,因为应用的所有状态要么直接包含于部署物中,且不可修改,要么存储于数据库、缓存或文件服务器等外部依赖中。
因此,应用程序不仅具有更好的可扩展性,而且更加可靠。存储应用的容器实例数量的增减,对于前端网站的影响很小。事实证明,这种架构对于非Docker化的应用程序已然成功,但是Docker自身包含了这种架构方式,使得Docker化的应用程序始终遵循这些最佳实践,这也是一件好事。
Docker工作流程的好处
我们很难把Docker的好处一一举例。如果用得好,Docker能在多个方面为组织,团队,开发者和运营工程师带来帮助。从宿主系统的角度看,所有应用程序的本质是一样的,因此这就决定了Docker让架构的选择更加简单。这也让工具的编写和应用程序之间的分享变得更加容易。这世上没有什么只有好处却没有挑战的东西,但是Docker似乎就是一个例外。以下是一些我们使用Docker能够得到的好处:
使用开发人员已经掌握的技能打包软件
许多公司为了管理各种工具来为它们支持的平台生成软件包,不得不提供一些软件发布和构建工程师的岗位。像rpm、mock、dpkg和pbuilder等工具使用起来并不容易,每一种工具都需要单独学习。而Docker则把你所有需要的东西全部打包起来,定义为一个文件。
使用标准化的镜像格式打包应用软件及其所需的文件系统
过去,不仅需要打包应用程序,还需要包含一些依赖库和守护进程等。然而,我们永远不能百分之百地保证,软件运行的环境是完全一致的。这就使得软件的打包很难掌握,许多公司也不能可靠地完成这项工作。常有类似的事发生,使用ScientificLinux的用户试图部署一个来自社区的、仅在RedHatLinux上经过测试的软件包,希望这个软件包足够接近他们的需求。如果使用Dokcer、只需将应用程序和其所依赖的每个文件一起部署即可。Docker的分层镜像使得这个过程更加高效,确保应用程序运行在预期的环境中。
测试打包好的构建产物并将其部署到运行任意系统的生产环境
当开发者将更改提交到版本控制系统的时候,可以构建一个新的Docker镜像,然后通过测试,部署到生产环境,整个过程中无需任何的重新编译和重新打包。
将应用软件从硬件中抽象出来,无需牺牲资源
传统的企业级虚拟化解决方案,例如VMware,以消耗资源为代价在物理硬件和运行其上的应用软件之间建立抽象层。虚拟机管理程序和每一个虚拟机中运行的内核都要占用一定的硬件系统资源,而这部分资源将不能够被宿主系统的应用程序使用。而容器仅仅是一个能够与Linux内核直接通信的进程,因此它可以使用更多的资源,直到系统资源耗尽或者配额达到上限为止。
Docker出现之前,Linux容器技术已经存在了很多年,Docker使用的技术也不是全新的。但是这个独一无二的集强大架构和工作流程于一身的Docker要比各个技术加在一起还要强大的多。Docker终于让已经存在了十余年的Linux容器走进了普通技术人员的生活中。Docker让容器更加轻易地融入到公司现有的工作流程中。以上讨论到的问题已被很多人认可,以至于Docker项目的快速发展超出了所有人的合理预期。
Docker发布的第一年,许多刚接触的新人惊讶地发现,尽管Docker还不能在生产环境中使用,但是来自Docker开源社区源源不断的提交,飞速推动着这个项目向前发展。随着时间的推移,这一速度似乎越来越快。现在Docker进入了1.x发布周期,稳定性好了,可以在生产环境中使用。因此,许多公司使用Docker来解决它们在应用程序交付过程中面对的棘手问题。
Docker不是什么
Docker可以解决很多问题,这些问题是其他类型的传统工具专门解决的。那么Docker在功能上的广度就意味着它在特定的功能上缺乏深度。例如,一些组织认为,使用Docker之后可以完全摈弃配置管理工具,但Docker真正强大之处在于,它虽然能够取代某些传统的工具,但通常与它们是兼容的,甚至与它们结合使用还能增强自身的功能。下面将列举一些Docker还未能完全取代的工具,如果与它们结合起来使用,往往能取得更好的效果。
企业级虚拟化平台(VMware、KVM等)
容器并不是传统意义上的虚拟机。虚拟机包含完整的操作系统,运行在宿主操作系统之上。虚拟化平台最大的优点是,一台宿主机上可以使用虚拟机运行多个完全不同的操作系统。而容器是和主机共用同一个内核,这就意味着容器使用更少的系统资源,但必须基于同一个底层操作系统(如Linux)。
云平台(Openstack、CloudStack等)
与企业级虚拟化平台一样,容器和云平台的工作流程表面上有大量的相似之处。从传统意义上看,二者都可以按需横向扩展。但是,Docker并不是云平台,它只能在预先安装Docker的宿主机中部署,运行和管理容器,并能创建新的宿主系统(实例),对象存储,数据块存储以及其他与云平台相关的资源。
配置管理工具(Puppet、Chef等)
尽管Docker能够显著提高一个组织管理应用程序及其依赖的能力,但不能完全取代传统的配置管理工具。Dockerfile文件用于定义一个容器构建时内容,但不能持续管理容器运行时的状态和Docker的宿主系统。
部署框架(Capistrano、Fabric等)
Docker通过创建自成一体的容器镜像,简化了应用程序在所有环境上的部署过程。这些用于部署的容器镜像封装了应用程序的全部依赖。然而Docker本身无法执行复杂的自动化部署任务。我们通常使用其他工具一起实现较大的工作流程自动化。
工作负载管理工具(Mesos、Fleet等)
Docker服务器没有集群的概念。我们必须使用其他的业务流程工具(如Docker自己开发的Swarm)智能地协调多个Docker主机的任务,跟踪所有主机的状态及其资源使用情况,确保运行着足够的容器。
虚拟化开发环境(Vagrant等)
对开发者来说,Vagrant是一个虚拟机管理工具,经常用来模拟与实际生产环境尽量一致的服务器软件栈。此外,Vagrant可以很容易地让MacOSX和基于Windows的工作站运行Linux软件。由于Docker服务器只能运行在Linux上,于是它提供了一个名为Boot2Docker的工具允许开发人员在不同的平台上快速运行基于Linux的Docker容器。Boot2Docker足以满足很多标准的Docker工作流程,但仍然无法支持DockerMachine和Vagrant的所有功能。
如果没有强有力的参考标准,很难理解Docker的作用。下一章我们将概览Docker,它是什么,它的目标使用场景,以及它的优势。
作者简介:
KarlMatthias[4]
KarlMatthias曾在创业公司和世界500强企业中担任过开发人员,系统管理员和网络工程师。在德国和英国的初创公司工作了若干年后,他和家人回到了美国俄勒冈州波特兰,在NewRelic公司担任首席网站可靠性工程师。业余时间,他会和他的两个女儿玩,用他那老式相机摄摄影,或者骑骑自行车。
SeanKane[5]
SeanKane目前在NewRelic公司的共享基础设施团队中担任首席网站可靠性工程师。他在生产运维领域有很长的职业生涯,在不同的行业中工作过,有许多不同的头衔。他在各类聚会和技术论坛做过演讲,涉及过疲劳预警和硬件自动化等话题。他的青年阶段大部分在海外度过,毕业于林林兄弟及巴纳姆和贝利小丑学院,在美国中央情报局做过两次实习等等,他一直在探索生活的真谛。
via:https://www.oreilly.com/learning/what-is-docker
作者:KarlMatthias[6],SeanKane[7]译者:Cathon校对:jasminepeng
本文由LCTT[8]原创编译,Linux中国荣誉推出
[1]:Docker即学即用-http://shop.oreilly.com/product/0636920036142.do?intcmp=il-security-books-videos-update-na_new_site_what_is_docker_text_cta
[2]:微型演讲-http://youtu.be/wW9CAH9nSLs
[3]:Github-https://github.com/docker/docker
[4]:KarlMatthias-https://www.oreilly.com/people/5abbf-karl-matthias
[5]:SeanKane-https://www.oreilly.com/people/d5ce6-sean-kane
[6]:KarlMatthias-https://www.oreilly.com/people/5abbf-karl-matthias
[7]:SeanKane-https://www.oreilly.com/people/d5ce6-sean-kane
[8]:LCTT-https://github.com/LCTT/TranslateProject
本文主要介绍了关于什么是;; 木偶;; 平均值(码头工人)的相关养殖或种植技术,综合百科栏目还介绍了该行业生产经营方式及经营管理,关注综合百科发展动向,注重系统性、科学性、实用性和先进性,内容全面新颖、重点突出、通俗易懂,全面给您讲解综合百科技术怎么管理的要点,是您综合百科致富的点金石。
以上文章来自互联网,不代表本人立场,如需删除,请注明该网址:http://23.234.50.4:8411/article/103238.html