图表君聊Docker-开篇
今天是图表君聊Docker的第一篇,为什么会有这个系列呢?容器技术Docker出现已经有一段时间了,之前零零星星的也看过一些文章,图表君的项目上也在使用Docker。但对于Docker技术的理解仅仅皮毛而已,工作上用到也只是写写DockerFile,遇到问题的时候Google一下。最近刚好参加了Docker培训,正好趁着这个机会,深入学习一下。一句话总结Docker,这货真是个改变世界的技术。
Docker的由来
Docker原来只是dotCloud公司的内部业余项目,基于Go语言实现,后来开源并加入了Linux基金会,自开源后收到了广泛的关注和讨论,后来dotCloud将公司都改名为Docker Inc. dotCloud公司原本的产品发展的并不如意,但是凭借Docker做的风生水起了,真是柳暗花明又一村。所以呀,很多朋友们都有自己的side Project,只要大家觉得自己的想法是有趣,有用的。坚持做下去,谁也不知道会不会是下个Docker。
Docker的技术特点
Docker的技术特点,相信大家都比较的了解了。相比较于传统的虚拟化技术,Virtual Machine包含了一套完整的OS,每个VM上都有自己的GUEST OS。而一个Docker Container并不包含一个OS,只包含这个App和其依赖,所以Docker Container更加的轻量快速。下边这张图大家一看就明白了。
Docker怎么安装呢
Docker是基于Linux的容器技术,所以天生在Linux上安装十分的简单。
curl -sSL https://get.docker.com/ | sh
对于Mac,喜大普奔的是Docker现在原生的支持Mac了。到Docker官网上,下载Docker的安装包,简单的几步next,Docker就安装好了。Docker for Mac
至于Windows,图表君没试过,官网有windows的教程,大家可以参考。
Docker到底解决了什么问题
一个新技术的出现,备受追捧,必定是解决了一些很多的问题。Docker这么红火到底是解决了什么问题呢?最直观的是,Docker让开发,测试,生产环境,彻底的统一了,统一了,统一了。
有没有小伙伴有这样的经历,线上出了一个问题,我们查了半天。what the fuck!我本地没问题啊,于是乎上测试环境,生产环境,吭哧吭哧查半天,当你开始怀疑人生的时候,然后发现是环境配置问题。内心一万个草泥马飞过。现在好了程序写好,做成镜像。想在那里部署运行都行。
另外目前什么样的软件架构最火,当然是微服务了啊。图表君的项目上都是采用微服务的构建,一个Project,7到8个Repo是很常见的。为了我们搭建开发环境,这些services都得启动起来。于是乎一个个的启动。太麻烦了。想当初图表君为了看一个CSS的修改效果,不得不启动3个service,我内心是奔溃的。(虽然是仅仅多run了几条命令而已,然而程序员都很懒的)现在好了一个docker compose up
。所有的service都起好了,太方便了,太方便了。
目前,docker还大多运用在开发和测试环境上,但是Docker运用在生产环境上,只是时间的问题了。原来在为了run一个简单的job,我要启动一个instance,来处理出来。现在我只要简单的run一个docker container就OK了。节省了多少资源成本和时间。特别是对于图表君这种仅仅只有一台阿里云服务器来说,可以做更多的事情了。特别利用DaoCloud这样的云服务,代码的提交,测试,发布,部署,一下全搞定。生活简直太美好了。
好了,开篇就写这个多了。下篇文章开始进入正题。如果你还不知道什么是docker,应该更新下知识库了。上docker的官网,安装docker,然后跟着图表君一起学习吧。
原创文章,欢迎转发,但请标明出处。欢迎关注图表君的公众号,一起成长。在微信中搜索 “多彩数据” 或者 “Data_Visualization”
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。