Docker,改变程序世界的箱子

最近听了一期罗辑思维,聊的是《改变世界的箱子》,这个箱子就是集装箱,它将物流运输过程标准化为以一个箱子为单元,简化了运输流程,同时也降低了物流成本,因而造就了一个高度自动化、标准化和低成本的物流体系,极大的促进了经济全球化。这让我想到,最近在程序界也出现了同样的一个箱子,那就是今天要聊的 Docker 容器。

软件开发中需要面对的一个挑战就是环境管理问题,因为软件并不是独立运行的,它依赖了很多其它的软件,包括操作系统、运行时、依赖库等等,而且对每个依赖软件还有版本要求,有一个依赖关系稍微不对,那就可能造成软件的运行异常。产品同学应该有过这种经历,从开发哥那里要一个最新版的软件来体验功能,结果装在自己的电脑上打开就挂掉,这个时候找开发哥来解决,开发哥一看就会说 “哦,你这环境不对,换个 Win8 吧,这软件只能在 Win8 以上运行”,或者说 “这个软件需要.Net 框架,你装个.Net 就好了”。

其实解决依赖环境的办法很简单,那就是所有机器都用同一套环境。但是对于一些 web 服务,它所依赖的软件及关联软件可能有上百个,让你去配一台机器已经要吐血了,如果让你把这个服务发布到 100 台不同的机器上,那么你就应该会阵亡了。同时,很有可能因为不同的机器已有的环境不同,你安装这些依赖的同时还要保证不能影响其它已有应用。

说了这么多,其实就是三个大问题,如何解决环境依赖?如何解决大规模部署?如何解决应用与应用的互相影响?Docker 就是这些问题的一种解决方案,它是一个容器,也可以说是一个软件集装箱,这个箱子里面可以塞入特定版本的操作系统、数据库、服务器程序和 web 应用,这样一套完整的 web 服务就集成在这个箱子里面了,当要发布服务的时候,直接将这个集装箱放在我们的服务器船上。如果你想发布到 100 台机器上,没问题,只需要 ctrl-c ctrl-v,将这些集装箱复制到 100 台机器上,它不会在乎船的配置高低,只要能放得下就行。如果你想发布 10 个不同的服务,还是没问题,你只需将这 10 个不同的集装箱依次排列在服务器船上,它们之间完全不会互相影响,因为各自被锁在不同的箱子里。

有的同学可能会说了,这不就是虚拟机嘛...是的,Docker 算是一种轻量级的虚拟机,它比起传统的虚拟机更快,更节省资源。打个比方,虚拟机就是轮船上的豪华包间,即使它用不了这么多资源,它也霸占着不让别人使用,而 Docker 容器就是一个简单的集装箱,它只占据它需要的资源。

Docker 技术目前才刚刚开始流行,它能不能改变程序世界,让我们拭目以待吧。

本文转自d1net(转载)

时间: 2025-01-28 03:39:22

Docker,改变程序世界的箱子的相关文章

十面埋伏? 程序世界里的不信任原则

导语 人与人之间最重要的是信任,但程序的世界里,可能信任越少越好;我越发觉得越是高性能高可用的系统里,不信任原则会体现得更加淋漓尽致. 为了少走弯路,写下这篇文章留给自己参考,其中一些是自己踩过的一些坑;一些是接手他人系统时触过的雷;还有一些是从别人分享的经验学习得来;能力有限,先记下自己的一些体会,错误的地方再慢慢改正. 一.编程的世界里十面埋伏 编程,是一件容易的事,也是一件不容易的事.说它容易,是因为掌握一些基本的数据类型和条件语句,就可以实现复杂的逻辑;说它不容易,是因为高性能高可用的代

c语言-编译器是否可以改变程序员的编程逻辑或意图

问题描述 编译器是否可以改变程序员的编程逻辑或意图 举例:用c语言,有一个整型变量a,在代码中明确表示a不会加一或减一,但是在调试时a却违背了程序员的意图出现了加一或减一的情况. 解决方案 不会,但如果是希望单步调试来跟踪变量的变化,最好将代码编译的优化选项关闭掉,否则优化后的代码与C的变量是不能一一对应起来的. 解决方案二: 编译器是程序,是程序就可以做任何事情.就在最近,就有人通过修改xcode附带的oc编译器,把恶意代码附加到使用这个编译器的所有程序上. 相关报道:http://digi.

盘点改变平民世界的十项军事技术

你的日常生活中有不少先进技术最初其实是战争工具.有的技术军用转民用的过程广为人知,有的则鲜为人知.下面就来盘点一下十项改变平民世界的军事技术. ◆ ◆ ◆ 互联网 你的日常生活中有不少先进技术最初其实是战争工具.有的技术军用转民用的过程广为人知,有的则鲜为人知.下面就来盘点一下十项改变平民世界的军事技术.说军方创造了现代互联网,其实不算完全准确.应该说,最早期的报文分组交换网络之一ARPANET为我们所熟知的现代互联网奠定了基础.DARPA(美国国防部高级研究计划局)当初出资开发ARPANET,

南方日报:一个改变了世界的男人传奇

1998年 颠覆 推出iMac一体机,颠覆了人们对电脑的认知,大获成功2007年6月,乔布斯在旧金山介绍即将上市的iPhone.他,改变了世界 编者按 这是关于一个男人的传奇. 史蒂夫·乔布斯,一出生就被自己的亲生母亲送给养父母乔布斯夫妇.17岁时,他上了一所自称"昂贵"的大学,6个月后,在"没有看到任何价值"之后,他选择了辍学. 在二十岁的时候,乔布斯和史蒂夫·沃兹尼亚克在父母的车库里面开创了苹果电脑公司.从此,他和他的苹果开始改变世界的征程. 他坚定地说:&qu

十大数据可视化站点 改变审视世界角度

文章讲的是十大数据可视化站点 改变审视世界角度,本文所介绍的这些网站将会改变大家观察世界的方式,以实时的.可视化的方式对结论加以审视,也许能为我们带来完全不同的观察视角. 一.全球黑客活动 从黑客活动开始踏上可视化数据工具体验之旅.这份迷人的地图由安全供应商Norse打造,其本质是一套反映全球范围内黑客攻击频率的快照.它利用Norse的"蜜罐"攻击陷阱显示出所有实时渗透攻击活动.(稍等一会儿,DDoS攻击就会点亮你的屏幕!)闪光的霓虹线段与炫丽的彩虹配色营造出了互联网时代下的科技战争氛

余额宝一周年:互联网金融改变的世界

收益又降了!这是做婚礼策划工作的木南最近常常会发出的感叹,近一年来,余额宝等互联网理财产品几乎改变了她的生活习惯:每天早上到公司第一件事,一定是查看新浪科技官方微博发布的互联网理财产品每日收益播报:每月发工资后第一件事一定是将钱转入余额宝.6月13日是余额宝的周岁生日,也是互联网理财产品诞生一周年的日子,小微金服官方数据显示,截至目前,余额宝用户已超过一亿户.越来越多像木南这样的用户,开始使用余额宝并逐渐成为其忠实粉丝.整整一年来,在享受其便利的同时,大家也纷纷叹息于其收益的下降.余额宝七日年化

闪存服务器 加速改变IT世界的新力量

当前,随着互联网+.云计算.大数据.人工智能的蓬勃发展,新IT成为加速产业升级.业务创新.推动新业务创新与实现世界经济增长的核心引擎.在新经济及技术环境下,随着新IT技术的日益普及,和企业级应用对性能的要求越来越高,传统存储的IOPS性能和低延迟已经成为企业业务发展的瓶颈,使得业务发展与创新面临严峻挑战. 我们知道,存储和计算性能的发展存在着极大的不平衡性.在"摩尔定律"之下,处理器.内存的性能发展很快,相比之下存储性能发展比较缓慢,存储性能成为IT加速的关键瓶颈.以前企业是通过增加硬

GDB改变程序的执行

一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分支. 修改变量值 修改被调试程序运行时的变量值,在GDB中很容易实现,使用GDB的print命令即可完成.如: (gdb) print x=4 x=4这个表达式是C++/C++的语法,意为把变量x的值修改为4,如果你当前调试的语言是Pascal,那么你可以使用Pascal的语法

10岁的Twitter曾经改变了世界,如今成了理想的囚徒

Twitter与微博,microblog在中美土壤中分别开出的两朵花,一个曾作为地球的脉搏(pulse of the planet,这一说法来自2009年Twitter内部战略)改变了世界,一个曾作为舆论中心而改变了中国. 当然后来的故事是,两个产品走上了不同的发展之路.但在后浪迭出的互联网世,二者都各自体会到了由盛转衰.用户抽身而去的"中年危机".在microblog这具形式的躯壳中,二者从战略到产品都尝试不断突破,以求顺应急剧的变化. 然而,Twitter步步踏空,错失了多个风口直