当前位置:首页 > 虚拟化 > 正文

容器与虚拟化相比更加节约


一、Docker这样的容器技术与虚拟化技术的区别是什么?Docker是一个开源应用程序容器引擎,允许开发人员将其应用程序和依赖项打包到可移植容器中,然后将其部署在任何流行的Linux机器上,这些机器也可以虚拟化。容器使用完全沙盒机制,彼此之间没有任何接口(类似于iPhone应用程序)。几乎没有性能开销,可以轻松地在硬件和数据中心上运行。最重要的是,它不依赖于任何语言、框架或系统。
docker网站上提到了典型的docker场景:
应用程序打包和部署的自动化
创建轻量级和私有的PAAS环境
自动化测试和持续集成/部署
部署和扩展Web应用程序、数据库和后端服务。因为是基于LXC的,所以虚拟化的特点相对于KVM之类来说是轻量级的,docker最明显的特点就是启动快、资源占用小。因此,需要构建隔离统一的运行环境,轻量级的PaaS(如dokku),构建自动化测试和持续集成环境,以及所有可以水平扩展的应用程序(尤其是需要快速启动和停止的Web应用程序)处理高峰和低谷)。
为了构建统一的运行环境,目前大多数的解决方案都是在底层操作系统上运行一组puppet/chef或者一个镜像文件。缺点是前者对底层操作系统要求很多先决条件,而后者无法修改(因为copyonwrite文件格式在rootfs运行时是只读的)。而且最后的文件体积较大,环境管理和版本控制本身也是一个问题。
PaaS环境从设计之初和dotcloud状态就很直观,并因其统一的构建方法(构建文件)和良好的REST而被用作PaaS产品的环境基础
。API、自动化测试、可以很好的与持续集成/部署结合
由于LXC的轻量级特性,启动很快,而且docker可以只加载每个容器变化的部分,所以消耗资源很少,可以用在在独立环境中,KVM等虚拟化解决方案速度更快,消耗的资源更少。
虚拟化是一个广泛的术语,在计算机中通常指的是在虚拟基础上运行的计算元素,而不是真实的计算元素。
虚拟化最初是指资源抽象,即单个物理资源的多个逻辑表示,或者多个物理资源的单个逻辑表示。具体到服务器虚拟化,它是多个物理资源的单一逻辑表示。
虚拟化技术可扩展硬件能力并简化软件重新配置。CPU虚拟化技术可以用单个CPU模拟多个CPU并行,允许一个平台同时运行多个操作系统,应用程序可以在独立的空间运行而不会互相影响,从而大大提高计算机的工作效率。
在实际生产环境中,虚拟化技术主要用于解决高性能物理设备容量过剩以及低容量遗留设备的重组和复用问题,并使底层物理设备变得透明,从而最大化物理设备的利用率。
二、“Docker容器技术”与“虚拟化技术”的区别是什么?

DockerContainers是一个开源应用程序引擎,允许开发人员打包他们的应用程序并依赖于可移植的容器包,然后将其发布到任何流行的Linux机器上,这些机器也可以虚拟化。

容器完全是一个沙箱机制,没有任何接口(就像iPhone应用程序一样)。性能开销很小,可以在机器和数据中心上轻松执行。最重要的是,它们不依赖于任何语言、框架或系统。

虚拟化最初被称为资源抽象,即单个物理资源的多种逻辑表示或多个物理资源的逻辑表示。服务器虚拟化的特殊性是多个物理资源的单一逻辑表示。

虚拟化技术可以扩展硬件容量并简化软件重新配置过程。CPU虚拟化技术可以进行多CPU单CPU并行模拟,允许一个平台同时运行多个操作系统,并且应用程序可以在不同的空间运行并相互交互,从而提高计算机的工作效率。


三、容器云技术的优势是什么?容器包含应用程序和所需的依赖项,但不需要独占资源,并且没有虚拟系统。相反,它们与主机共享硬件资源和操作系统,并与其他容器共享内核,以实现资源的动态分配。多个容器在同一主机操作系统的用户空间中作为独立进程运行。因此,容器比虚拟机轻得多。一台主机上可以同时启动近百个容器。应用程序在数量上水平扩展非常方便,但启动相同数量的虚拟机几乎不可能。对于重启操作来说,容器类似于重启进程,而虚拟机则相当于重启操作系统。
用通俗的容器比喻来说,当“货物”(应用)在“车”“火车”“船”(私有云、公有云等服务)之间迁移、交换时,迁移的只是需要符合标准规格和装卸方式的“容器”(dockercontainer),减少了费时费力的人工“装卸”(线上线下应用),带来巨大的时间和人力成本的节省,这将使得未来运维人员操作和维护容器集群以实现在线应用的超大规模加载成为可能。
看到这个,你是不是觉得很眼熟?这些不都是近几年流行的物联网平台所提倡的相同点吗?
物联网平台厂商经常会告诉你:在我们的平台上提供了多种开发工具。您可以使用拖放的方式来开发程序。您不必担心底层操作系统和赖环境。您只需关注客户的需求和应用程序本身。。……
正如OpenStack、Cloudstack等技术解决IaaS层的问题一样,容器技术的诞生实际上主要解决PaaS层的技术实现。
现在最常用的开源云平台架构,Kubernetes、CloudFoundary、Serverless,都是由容器技术驱动的。市场上有数百个物联网平台,几乎全部都是PaaS平台。