docker 背景
Docker是PasS提供商DoctCloud开源的一个基于LXC的高级容器引擎,源代码托管在Github上,基于go语言并遵从Apache2.0协议开源。已经开始集成到centos系统中去。
现代软件开发,开发,部署,测试,需要通过干净的系统(虚拟机)安装各种系统服务,各种应用,修改配置等等,在迁移,部署难度很大,系统级依赖过于强。
各种OS到各种中间件到各种app,一款产品能够成功作为开发者需要关心的东西太多,且难于管理,这个问题几乎在所有现代IT相关行业都需要面对,对此Docker可以简化部署多种应用实例工作,比如Web应用、后台应用、数据库应用、大数据应用比如Hadoop集群、消息队列等等都可以打包成一个 Image部署。
简单讲,传统的VM技术是在一台主机(Host)上虚拟出多个GuestOS,再在GuestOS里面安装App,而Docker的多个容器是直接共享一个Host的,并利用特定的Linux技术,使这多个容器互相隔离、互不可见
使用容器技术后,不再需要GuestOS,大大减少了系统资源的损耗,提高了效率,而且App的启动速度大大加快(VM的话,必须先启动GuestOS,再启动App)
虚拟机:
优点:系统功能与服务器基本类似,采用系统全量镜像的方式备份,开发,测试,部署的使用方式和操作流程跟传统系统使用差别不大。
缺点:软件安装复杂,类似于系统软件安装,系统资源占用高,系统编排麻烦,很多通过手工操作。
docker
优点:按需使用,资源占用量低,对系统操作水平要求有所降低,可编程式编排,执行。发布,部署通过现在流行中央库方式进行,这是一种对你整个系统运维,开发,管理得的一种重大的变革。
缺点:由于采用按需部署,有可能系统环境可能与实际系统环境不一致,使用方式和流程跟传统部署使用方式差异很大。
对传统软件开发流程的改进