@
SharkIng puppet没用过,暂且不谈.说说docker和vagrant吧.首先docker和vagrant就不是一类工具,非要找类似的话,boot2docker和vagrant算是一类吧,都是管理虚拟机的,只不过boot2docker也就只能使用boot2docker这么一个box.
先看看docker的官方定义:An open platform for distributed applications for developers and sysadmins.清晰明了,docker是个平台.至于vagrant,官方只是说了它能做什么:Create and configure lightweight, reproducible, and portable development environments.按我理解它只是个开发环境的配置管理工具.一平台一工具,两者的区别显现出来了.至少对我来说,vagrant跑起来后box里面只是个开发环境,和实际的生产环境还是有着差异的.至于docker,配置的好的话,你的开发环境和应用是能够直接打包丢进生成环境使用的,相交于vagrant能够再进一步的提高生产效率,避免生产\测试\开发环境之间的差异而造成的各种问题.相信大家应该是遇见过这种问题的:测试组的同事来找你,报一堆奇怪的bug,而你在开发环境里面怎么都复现不了这些bug.
Vagrant was started in January 2010,docker launched in March 2013.显而易见,docker更年轻,作为新生事物也并不完善,据说是目前最好docker管理工具shipyard个人觉的其实并不好用,给人的感觉实在是太简陋了.vagrant作为一个管理工具对我来说还是比较好用的,网上一堆现成的box可以下载,比如说Laravel官方提供的Homestead能够让新手更容易的入门,不至于因为开发环境部署问题而止于门外.Docker官方仓库现在虽说有不少的镜像提供,但更多的是基础镜像.不过你要是熟悉以后,docker相对而言其实更方便,shipyard在官方仓库有镜像提供.gogs则是提供dockerfile.
简单说,docker可以提供一条龙服务.vagrant则是让你在家(本机)玩儿的更开心.
咦~我怎么闻到一股知乎的味道.不行,得加条规则屏蔽了它.最后AD一下,v社有收人的嘛?本人会PHP,最近新开始学Laravel(惊叹),golang(能看懂,会写点,beego用的心塞,效率低下).