什么是docker
看图说话:“一只可爱的大鲸鱼上面摆放着许多小箱子,而这些小箱子呢--就是应用程序,鲸鱼就是操作系统”。大家应该都知道集装箱吧,不过你是什么货物,通过什么运输方式?集装箱,它能够让一个载重几十吨的庞然大物实现标准化,节省了中间转运的人力成本,大大提高了货物运输的效率。docker就有这样的一隐喻。
ONE
不同的应用程序可能会有不同的应用环境,比如.net开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的软件都安装在一个服务器上就要调试很久,而且很麻烦,还会造成一些冲突。比如IIS和Apache访问端口冲突。这个时候你就要隔离.net开发的网站和php开发的网站。常规来讲,我们可以在服务器上创建不同的虚拟机在不同的虚拟机上放置不同的应用,但是虚拟机开销比较高。docker可以实现虚拟机隔离应用环境的功能,并且开销比虚拟机小,小就意味着省钱了。
TWO
你开发软件的时候用的是Ubuntu,但是运维管理的都是centos,运维在把你的软件从开发环境转移到生产环境的时候就会遇到一些Ubuntu转centos的问题,比如:有个特殊版本的数据库,只有Ubuntu支持,centos不支持,在转移的过程当中运维就得想办法解决这样的问题。这时候要是有docker你就可以把开发环境直接封装转移给运维,运维直接部署你给他的docker就可以了。而且部署速度快。3.在服务器负载方面,如果你单独开一个虚拟机,那么虚拟机会占用空闲内存的,docker部署的话,这些内存就会利用起来。
还有一种比较通俗的说法,关于租房的,在知乎上看到的。
解释到这里,大家应该对docker有一个大概的认识了吧:docker省事,效率高,部署环境快,而且服务器资源利用率高。你也可以看下面这篇文章更深入的理解docker:http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html
学习docker
那对于新手来说,要怎么学习docker呢?在充分理解了docker的思想后,进入docker相关文件、命令的学习,应该不难,就跟像学linux命令行一样简单吧。下面是我收藏的一些有关docker学习的一些资料:网站:https://yeasy.gitbooks.io/dockerpractice/content/basicconcept/极客学院:http://www.jikexueyuan.com/course/docker/ 本人收藏PDF教程文档,需要资源的可以加我微信。
实战
当你学完docker的基础知识后,你就可以试着看我上一篇推送,看下如何用docker实战部署web应用到服务器上,有什么问题都可以私聊小编,benny很乐意为你解答。
在这里,感谢大家坚持到最后,看完了全部内容。有错误麻烦大家提出来,感谢!
今日作者: benny
不当你的世界,只作你的肩膀
欢迎关注:程序员的碎碎念
领取专属 10元无门槛券
私享最新 技术干货