Docker中文叫容器,和虚拟机有很多相似之处,也有诸多不同之处。用来运行生产系统,都是没问题的。虚拟机具有普适性,而Docker的轻量化更适合微服务架构的应用,下面我们就来了解一下: 1、Docker和虚拟机异同点①、虚拟机 说起虚拟机我们都非常熟悉。它利用虚拟化技术将操作系统和物理服务器脱离关系,虚拟机通过虚拟层和宿主物理服务器打交道。这样,我们的宿主物理服务器只要性能足够,就可以运行大量的虚拟机。而虚拟机因为脱离了物理硬件的捆绑关系,也就具备了很多优点:
当然,虚拟机不止我这里说的好处。它是云计算的最基础技术,没有它就无法实现云计算。 ②、Docker Docker是在虚拟机之后才出现的技术。它也是在操作系统之上的轻量化虚拟技术。它可以运行在传统的物理服务器上,也可以运行在虚拟机之中。它是将应用系统的运行环境和应用软件打包在一起的技术,它也具备很多优点:
③、两者相同点和不同点 虚拟机和Docker都具有高可用和高性能的特点,他们都是一种虚拟化的技术。但两者也存在很多的不同点:
2、Docker可以取代虚拟机的地方通过上面虚拟机和Docker的对比发现,Dokcer更适合当前采用微服务架构的应用软件开发、部署、运维的所有过程。那到底什么是微服务架构呢? 这个起源于互联网公司,互联网的软件都是需要快速上线,持续迭代更新,又有大量的轻量并发访问。基于这些特点,互联网公司通常将一个大型的应用程序和服务拆分为数个甚至数十个的支持微服务,通常扩展单个组件而不是整个的应用程序堆栈,从而满足互联网访问这种特性。这就是我们常说的微服务。架构对比示意图如下: 从图中,我们可以看到传统架构是一个紧耦合的应用,各个模块都是集成在一个应用里面。不仅应用对性能要求高,数据库对性能要求也高。自然不适合Docker来做,更适合虚拟化或者物理集群来做。而微服务架构则不同,拆散成了很多个微小的服务组件,这样就比较适合Docker来开发部署了。 当然,现在微服务架构已经不局限在互联网公司用了。只要具有互联网软件相似特点的应用,都可以采用微服务架构来开发。所以,Docker也就被用的越来越多。但Docker和虚拟化并不是互相排斥的,反而是相互贯通的。 3、Docker和虚拟机是互相贯通的因为Docker是微型虚拟化的容器,它可以运行在物理机操作系统上,也可以运行在虚拟机的操作系统之上。所以,Docker和虚拟机并不互相矛盾。反而是相辅相成的。现在,很多互联网应用都是在虚拟机组建的云端上部署Docker应用。这样既有云计算的弹性性能提供,也有Docker快速灵活部署应用的特点。是相辅相成的绝佳方法。 总结总之,Docker是轻量级的虚拟化,只打包软件和软件运行环境。而虚拟机则是打包操作系统的重量级虚拟化。两者之间有虚拟化的共同特点,也有自己的独特性。在实际使用中,Docker非常适合采用微服务架构的软件开发、部署、运维。而虚拟机则普适性比较广,但它和Docker是互相贯通的,相辅相成的,并不矛盾冲突。
|
|