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

docker容器和虚拟机


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

Docker和虚拟机的区别是:虚拟机需要几分钟才能启动,而Docker容器可以在毫秒内启动。由于没有臃肿的从操作系统,Docker可以节省大量的磁盘空间和其他系统资源;虚拟机更好地完全隔离整个运行环境。

①Docker容器速度非常快,可以在几秒内启动和停止,这比传统虚拟机需要几分钟的时间要快得多。②Docker需要的系统资源很少,一台主机上可以同时运行数千个Docker容器。

第三:小而轻:容器只需要包含所使用的组件即可。与虚拟机相比,容器文件比虚拟机小得多。第四:方便的移动性:容器技术最重要的是在不同主机上运行服务的轻量级和一致的格式。

Docker启动速度快,容器中的应用程序直接是底层系统的进程,而不是虚拟机内部的进程。因此,启动容器相当于在本地计算机上启动进程,而不是启动操作系统,速度要快得多。


三、Docker是什么?它比虚拟机强在哪里?Docker是一个开源应用程序容器引擎,允许开发人员将其应用程序或软件移植到映像中,然后将其发布到任何Windows或Linux计算机。一个完整的Docker由:DockerClient客户端、DockerDaemon守护进程、DockerImage镜像和DockerContainer容器组成。容器完全采用沙箱机制,相互之间不会有任何接口。
Docker比虚拟机更强大的是:
第一:启动时间:Docker容器在几秒内启动,而虚拟机在几分钟内启动。
第二:空间占用和性能:在空间占用和性能方面,Docker容器镜像比虚拟机更小、更强大。
第三:使用要求:虚拟机是基于硬件虚拟化的,其CPU也必须支持虚拟化,并且可以运行在普通的Linux上,无论CPU是否支持虚拟化。