上周对象突然心血来潮说想养个小宠物,我问想养啥她又说随便,你看着办!!!这我真的比较难办啊!但是咱们程序员能有个对象就不错了,还不赶紧宠着,我只能照办咯!
我去到了一家宠物店,半天也没有找到合适的目标。正在我犹豫彷徨之时,看到了老板门口鱼缸里面的金鱼游来游去还挺顺眼!于是我问老板
我:老板,金鱼多少钱?
老板:加鱼缸一起100块钱不讲价!
我:这…便宜一点咯!
老板:小伙子看你骨骼惊奇,定是个养鱼的奇才,2块钱卖给你吧!但是鱼缸可不能给你!
我:那,你帮我打包一条吧,帮我拿个袋子装着就好了!
于是我兴高采烈的拎着小金鱼就回家了,找了个大罐子养着!对象看到我买的小金鱼后露出了幸福的笑容~
第二天早上对象把我从睡梦中摇醒:“嘤嘤嘤,人家的小鱼动不了了,你赔~~~ ”。于是我很愤怒的跑去宠物店找老板索赔!
我:你们家卖的鱼有问题,回去就不行了!
老板:不可能,昨天在我们这都活蹦乱跳的!
我:就是你们家的鱼有问题!
老板:肯定是你自己买的鱼缸有问题!
我:手持两把锟斤拷,口中疾呼烫烫烫。
老板:脚踏千朵屯屯屯,笑看万物锘锘锘?
这一幕,似曾相识!像极了我们在开发中
测试:xx,你的代码在生产环境上运行有问题。
我:不可能,我本地都运行得好好的。
测试:你自己上生产环境上看。
我:我不看,我的代码在本地没问题,肯定是运维的锅,你去找运维!
或许很多开发人员都有过上面的经历,程序在本地运行都很正常,一上到生产环境就崩了。这是因为程序跟小金鱼一样也会“水土不服”!而导致程序水土不服的原因一般就是环境和配置的差异!加上现在互联网高并发、大流量的访问,一个应用往往需要部署到集群的多台机器上,并且集群扩容缩容的需求也比较频繁。如果按照传统的方式部署,那每一台服务器上都需要装各种软件…然后进行各种配置…我仿佛看到了“工作996,生病ICU”在向运维工程师招手!
那有没有一种方案不仅能屏蔽环境的差异,并且还能快速部署呢?既然“水土不服”那我把程序及整个“水土”都打包迁移,就看你服不服。而docker就是这样的一种让你服技术!
昂,上面的对象是我自己new的(* ̄︶ ̄)…
Hello Docker
Docker是什么呢?百度百科是这样跟我说的:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
这段话已经很概括的描述了docker是什么,docker能干嘛,docker的基本特性!相信刚开始接触docker的你跟我也一样,看了几遍都很懵逼!没关系,看完全文再回头看这段话,或许就有不一样的体会了!我们先看看docker官方给出的“定妆照”