/ 中存储网

Docker与Openstack区别在哪里?

2017-10-09 20:15:04 来源:科技壕

目前在企业信息化建设方面,比较引人注目的当属Docker和OpenStack两钟技术的应用。Docker和OpenStack是在信息化基础设备虚拟化或云化方面最火的两个开源项目,那他们都有什么特点?又有什么区别?

随着Docker项目在人气方面的持续飙升,很快刚刚接触这一新生事物的朋友在实践过程中不禁产生了这样的疑问:如果已经决定使用Docker,是否还有必要同时使用OpenStack?

下面来看对两者的对比介绍:

OpenStack:它是管理服务器、网络、块存储的工具。关于块存储,简单的理解是把一堆磁盘用软件组合成一个大磁盘给操作系统使用。就是管理一堆服务器,然后在有需要的时候在它的管理界面上分配一些存储、分配IP、创建虚拟机。所以他的最终目的还是管理虚拟机,它于你可能用过的virtualbox、vmware桌面版不同的地方就是你用的那些小东东只能管理你自己那一台机器上的虚拟机,openstack可以管理一堆服务器上的虚拟机,哦,忘了还有有些技术专家常说的网络和存储。

Docker:什么是Docker?简单的说Docker是一个构建在LXC之上的,基于进程容器(Processcontainer)的轻量级VM解决方案。它用比虚拟机技术少很多的资源消耗实现了类似于虚拟机的对CPU、磁盘、网络的隔离,同时在AUFS层存储的基础上实现的部署标准化。举例来说你可以在网上下载到安装好mysql、redis的docker 镜像,然后在你的linux环境中运行起来,你也可以把你的应用生成为一个镜像,然后在开发环境运行、然后在正式环境运行,而镜像是层叠的,这意味着上层镜像会非常小。

很多人说他们不可以比较,其实他们是可以比较的,OpenStack是IaaS层的东西,有人可能不知道IaaS层是什么,简单的说就是把一堆服务器整合起来,然后自由自在的在这些服务器上创建管理很多的虚拟机,还会涉及到网络和磁盘的虚拟化。当然你暂时还是不要想把多个服务器上的CPU合起来变成一个更强大的虚拟机这种美事。而Docker和以Docker为主的swarm或Kubernetes在虚拟化方面想做的与Openstack基本是一样的事,但相对kvm之类的虚拟机它消耗了更少更少的硬件资源。但是他还做了一些部署标准化,所以docker是一个横跨IaaS和PaaS的东西,或者它刺破了原来对IaaS和PaaS的严格分层,让这些术语或说着这些术语的人们包括我都有些凌乱了。但它又是那么的简捷、有效。

那么问题来了,

问题1:docker和openstack会融合吗?

会的,目前有几个可能的方向,1.是把docker封装一层,变成类似kvm的虚拟机引擎。2.是把docker运行到openstack管理的虚拟机中。3.是把openstack用到的各个组件装到docker容器,方便部署。我们来仔细分析一下这几个可能的方向。

1.把docker封装成虚拟机引擎,这是一个看起来比较有效和直接的溶合了docker的方案,但,是有问题的,必竟它不是虚拟机,没有实现虚拟机那样对资源彻底的隔离,所以你登录到docker虚拟出来的容器和登录到kvm等虚拟机引擎虚拟出来的虚机上时虽然感觉差不多,但一些涉及到相对低层的命令的执行结果是不一致的。所以docker不是一个好的虚拟机引擎,因为它就不是虚拟机引擎。另一方面,这种方式的集成会屏蔽docker在部署上的优势。所以如果Openstack要全面的溶合docker,那它就不是现在的openstack了,它就不是IaaS层的东东了。

docker和openstack区别已经功能对比

2.把docker运行到openstack管理的虚拟机中,这是虚拟中的虚拟,有点黑客帝国的味道或盗梦空间?土豪的节奏啊,不用评论了。

3.把openstack用到的各个组件装到docker容器上,这个不错,正好是对docker的很好的使用,证明了docker的能力。但是。。。这是溶合吗。

问题2:docker会取代openstack吗?

不知道,但是以docker为代表的容器技术应该会极大的压缩openstack在虚拟机方面的使用空间,哦对了,openstack还会管理网络和存储。但是需要它管理吗,不需要吗。必须要用windows的情况下还是不能用docker的,因为这一点,docker也会一定层度上拉升在服务器领域的linux操作系统占有率。一些需要强硬件资源隔离的场景下还是使用openstack之类的技术的。

无Docker不OpenStack,当前讨论OpenStack总是离不开Docker。

以上就是对Docker和OpenStack的比较,这下您知道他们的区别了吧。更多相关资源见各自专题:OpenStack Docker