Docker火了,有多火你自己看看下面的统计数据就知道了
最有意思的事情是,在docker本身还没有稳定之前,就有如RedHat和AWS这样的公司为其提供官方支持,很多开发者和公司就急不可耐的把它用到生产环境,连docker自己的CEO都要跳出来劝说大家稍安勿躁,我们还没有准备好嘞。在整个IT软件发展历史中,好像很少有这种情况,特别是这种企业级运维相关的系统,一般大家都是慎之又慎,为何这次如此不谨慎,如此不认真,如此不负责任把还在beta阶段的系统上线运行? 我记得2014年8月,这时距离docker发布仅仅1年的时间,我与湖南某家大型媒体的研发中心交流,开发人员已经在使用docker运行他们的系统,而且有些已经进入生产环境。而在过去的2年里,每一个我所接触的客户,从C-level的管理人员,到中层管理者,到开发人员都在提这个东西。 它到底是什么?这可能是每一个IT从业者都想搞明白的问题。 Docker是什么?容器又是什么?Docker 直译:码头工人。是在码头上搬运货物的工人 如果按照这世界上大多数正常人的理解,大家会把 Docker(码头工人)和 Container (集装箱)这一对事物放在一起,他们的关系一目了然:码头工人搬运集装箱。但是如果按照这世界上另外的一类人(程序员)的理解,我们会这样组合 ,Docker (代码集装箱搬运工)和 Container (容器)。 Docker与容器是完全2个不同的东西,Docker是用来组装/搬运/拆包容器的工具。当然也可以是人,我们原来这些苦逼的程序员谁没干过zip/copy/paste/unzip的工作呢?其实Docker就是这样一个工具,用来打包 (build)/传送(push/pull)/拆包 (run) 那些需要运行的应用。而容器就是那个包。 那么容器又是什么?其实和集装箱很类似,就是把那些需要放在一起从A地运送到B地运行的,不能和其他程序混杂的代码封装成的一个包而已。这个概念从计算机出现的那天基本上就存在了,只是这么多年我们一直在不停的改进,但从来没有一个像docker这样的工具让容器的使用变的如此简单。在Unix/Linux的世界里,它曾将叫做 Process Container,现在被称为Control Group (cGroup);在Windows世界里,我们曾经有组件。他们的目的都一样,为了把程序从A地运送到B地,同时确保他们可以相互隔离的运行。 Docker绝对不等同于容器。一个是干活的人,一个是被搬运的物品,能一样吗?但是我仍然在各种技术文章,会议演讲上看到和听到将他们混为一谈的说法。实在觉得需要给他们正名,也是今天写这个文章的主要原因。 Docker,容器与虚拟机有啥区别?在每一篇介绍Docker的文章里面都会看到与虚拟机比较的内容,其实我觉得这完全是拿苹果和香蕉比较,它们完全不具备可比性,至少在技术上! 然并卵,那我要这七十二变有何用?牢骚发够了,还是说说Docker到底有啥用?Docker这个搬运工与其他搬运工不同的是,他在组装容器的时候会把应用需要的其他配件都放在一个集装箱里。这样,集装箱到货以后,直接开包就可以完成应用组装;不用再到其他地方七拼八凑的去找各种配件了。这就好比你想做红烧肉,原来的应用打包只给你打包了肉(应用),别的什么八角,香叶,冰糖,生抽老抽(应用依赖环境)都不带;现在商家提供一站式服务,一个包里不光有肉,还有七七八八所有的东西。你家里有炉子,有锅就够了(操作系统)。 最后,用一句话定义Docker,那就是:优化应用运维过程的工具和生态系统。 晚上吃红烧肉!祝大家胃口好! 相关文章: |
|