简述docker和虚拟机的区别

容器与虚拟机的区别

1.容器技术简介
对于容器,它首先是一个相对独立的运行环境,在这一点有点类似于虚拟机,但是不像虚拟机那样彻底。在容器内,应该最小化其对外界的影响,比如不能在容器内把宿主机上的资源全部消耗,这就是资源控制。
2.容器与虚拟机的区别
容器和虚拟机之间的主要区别在于虚拟化层的位置和操作系统资源的使用方式。
1
1
  容器与虚拟机拥有着类似的使命:对应用程序及其关联性进行隔离,从而构建起一套能够随处运行的自容纳单元。此外,容器与虚拟机还摆脱了对物理硬件的需求,允许我们更为高效地使用计算资源,从而提升能源效率与成本效益。
  
  虚拟机会将虚拟硬件、内核(即操作系统)以及用户空间打包在新虚拟机当中,虚拟机能够利用“虚拟机管理程序”运行在物理设备之上。虚拟机依赖于hypervisor,其通常被安装在“裸金属”系统硬件之上,这导致hypervisor在某些方面被认为是一种操作系统。一旦 hypervisor安装完成, 就可以从系统可用计算资源当中分配虚拟机实例了,每台虚拟机都能够获得唯一的操作系统和负载(应用程序)。简言之,虚拟机先需要虚拟一个物理环境,然后构建一个完整的操作系统,再搭建一层Runtime,然后供应用程序运行。
  
   对于容器环境来说,不需要安装主机操作系统,直接将容器层(比如LXC或libcontainer)安装在主机操作系统(通常是Linux变种)之上。在安装完容器层之后,就可以从系统可用计算资源当中分配容器实例了,并且企业应用可以被部署在容器当中。但是,每个容器化应用都会共享相同的操作系统(单个主机操作系统)。容器可以看成一个装好了一组特定应用的虚拟机,它直接利用了宿主机的内核,抽象层比虚拟机更少,更加轻量化,启动速度极快。
  相比于虚拟机,容器拥有更高的资源使用效率,因为它并不需要为每个应用分配单独的操作系统——实例规模更小、创建和迁移速度也更快。这意味相比于虚拟机,单个操作系统能够承载更多的容器。云提供商十分热衷于容器技术,因为在相同的硬件设备当中,可以部署数量更多的容器实例。此外,容器易于迁移,但是只能被迁移到具有兼容操作系统内核的其他服务器当中,这样就会给迁移选择带来限制。
  
  因为容器不像虚拟机那样同样对内核或者虚拟硬件进行打包,所以每套容器都拥有自己的隔离化用户空间,从而使得多套容器能够运行在同一主机系统之上。我们可以看到全部操作系统层级的架构都可实现跨容器共享,惟一需要独立构建的就是二进制文件与库。正因为如此,容器才拥有极为出色的轻量化特性。
  
  对Docker稍有接触的人应该都见过下图,无需更多解释,Docker减少Guest OS这一层级,所以更轻量和更高性能。
  docker虚拟机区别
  
  
3.深层区别:
  docker虚拟机区别
更新:Docker现在已经支持windows平台,所以上面的Windows支持一栏可以忽略。

Docker是什么它比虚拟机强在哪里

Docker是一个开源的应用容器引擎,可以让开发者将自身的应用或者软件移植到镜像中,然后发布到任何一个Windows机器或者Linux机器上,当然Docker也可以实现虚拟化。而一个完整的Docker是由:Docker Client客户端,Docker Daemon 守护进程,Docker Image 镜像和Docker Container 容器来组成的。容器是完全采用沙箱机制,相互之间不会有任何接口。
而Docker比虚拟机强大的地方在于:
第一:启动时间:Docker容器是秒级启动的,而虚拟机时分钟级启动,在启动速度方面,Docker就能够完美地碾压了虚拟机。
第二:占用空间和性能:在占用空间和性能方面,Docker容器镜像比虚拟机要小得多且性能要比虚拟机更强。
第三:使用要求:虚拟机是基于硬件的虚拟化,其CPU也要有支持虚拟化的支持,Docker共享宿主机内核,可运行在主流的Linux,不用考虑CPU是否支持虚拟化技术。

Docker容器是什么它比虚拟机强在何处

Docker容器是一个开源的应用容器引擎,可以让开发者用统一的形式打包其自身的应用,然后包装到一个可以移植的容器中,随后发布到任何可以安装Docker引擎的服务器上(比如主流的Linux机器或者是Windows机器),当然也可以实现虚拟化。Docker容器几乎没有性能开销,可以很容易的在机器和数据中心运行,其最大的特色就是不依赖任何系统,框架甚至是语言。
由于容器是进程级的,相比于虚拟机有着很多的优势
一:启动速度快:由于容器里面的应用软件,直接就是底层系统的一个进程,而不是虚拟机内部的进程。所以启动容器时,不是启动一整个操作系统,速度就快了很多。
二:资源占用少:相比于虚拟机而言,容器只占用需要的资源,不会去占有无效的资源,而虚拟机则是一个完整的操作系统,不可避免的占用了所有资源。
三:体积小,轻量级:容器只需要包含用到的组件,对比于虚拟机,容器文件要比虚拟机小很多。
四:方便移动:容器技术最重要的就是为不同的主机上运行服务一个轻便,一致的格式。容器的格式更加标准化且方便客户对工作负载的迁移,有效避免单一的平台提供商。

docker容器与虚拟机有什么区别

我们单位最近在推docker,已经在开发测试环境使用(稍显落后),下面我就谈谈自己的Docker的理解,以及Docker和虚拟机的区别。

虚拟机

先说说什么是虚拟机:在一台物理机器上,利用虚拟化技术,虚拟出来多个操作系统,每个操作系统之间是隔离的。

说起来有些绕,那么我们看看虚拟机的架构图,就容易理解了。例如我们要在一台物理机器运行三个Java项目,彼此之间隔离。

从下往上看, 解释起来其实很简单:

最下面的一层就是物理机,可以是服务器,设置是一台个人电脑;

Docker

再说说什么是Docker,找了一句官方的解释:Docker是开源的应用容器引擎。是不是又一头雾水?我们还是先看看Docker的架构图。

依然从下往上看:

Docker和虚拟机的区别

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

谢谢了!docker容器域虚拟机有什么区别呢?

docker容器: Docker 容器是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

虚拟机: 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响 ,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。虚拟系统和传统的虚拟机(Parallels Desktop ,Vmware,VirtualBox,Virtual pc)不同在于:虚拟系统不会降低电脑的性能,启动虚拟系统不需要像启动windows系统那样耗费时间,运行程序更加方便快捷;虚拟系统只能模拟和现有操作系统相同的环境,而虚拟机则可以模拟出其他种类的操作系统;而且虚拟机需要模拟底层的硬件指令,所以在应用程序运行速度上比虚拟系统慢得多。 对比虚拟机与DockerDocker守护进程可以直接与主操作系统进行通信,为各个Docker容器分配资源;它还可以将容器与主操作系统隔离,并将各个容器互相隔离。虚拟机启动需要数分钟,而Docker容器可以在数毫秒内启动。由于没有臃肿的从操作系统,Docker可以节省大量的磁盘空间以及其他系统资源。说了这么多Docker的优势,大家也没有必要完全否定虚拟机技术,因为两者有不同的使用场景。虚拟机更擅长于彻底隔离整个运行环境。例如,云服务提供商通常采用虚拟机技术隔离不同的用户。而Docker通常用于隔离不同的应用,例如前端,后端以及数据库。

docker解决的主要问题

有过后台开发经验的同学,一定遇到过下面这些问题:

那么,有了docker,这些问题都将不复存在。

什么是docker

Docker是一个虚拟环境容器,可以将你的可执行文件、配置文件及一切其他你需要的文件一并打包到这个容器中,并发布和应用到任意平台。比如,你在本地用Python开发了一个网站后台,开发测试完成后,就可以将Python3及其依赖包、Flask及其各种插件、Mysql、Nginx等打包到一个容器中,然后部署到任意你想部署到的环境。

如果不好理解,我们再拿集装箱打个比方。

集装箱解决了什么问题呢?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。

docker也是类似的理念。我们可以在一台机器上跑多个互相毫无关联的docker容器,每一个容器就相当于一个集装箱。

docker里的几个基本概念 与传统虚拟化的区别

这里我们顺便讲一下传统虚拟化。

我们看到,传统虚拟化是站在硬件物理资源的基础上,虚拟出多个OS,然后在OS的基础上构建相对独立的程序运行环境,而Dokcer则是在OS的基础上进行虚拟,显然Dokcer轻量得多,因此其资源占用、性能消耗相比传统虚拟化都有很大优势。

在IT行业从业多年,也算从看着时代从物理服务器走向虚拟化云计算时代,又准备进入Docker时代,作为下一代虚拟化技术,Docker正改变着整个行业开发、测试、部署应用的方式,至于虚拟化技术和docker技术到底有什么不同,下面来分析一下。

01 什么是虚拟化?

顾名思义,虚拟化技术是将物理资源以某种技术虚拟成资源池的形式,主要有一虚多和多虚一两种形式,比如个人电脑安装Vmware软件,可以在这个软件上安装其他Win系统、MacOS、Linux系统等,实现一台电脑/笔记本承载多个系统的优点,目前苹果笔记本用户双系统解决方案也以虚拟机为主,普通Windows用户可能需求量不大,而技术人员基本是必备软件了。

从企业层面来看,多虚一为主要形式,也就是将大量物理服务器集群虚拟化,形成一个资源池,在这个资源上创建各种不同的虚拟机,实现灵活部署。

02 什么是Docker

其实docker和虚拟技术很像,但又有一些不同点,一方面是两个技术的层级上,虚拟机一般是底层硬件Hardware支撑,上层是虚拟管理系统Hypervisor层,在上层开启不同的VM业务,如果需要将这些业务进行隔离,需要每个VM启动客户机操作系统,非常消耗资源。

Docker完全不同,底层有硬件和Host OS系统支撑,比如Windows/MacOS/Linux,中间抛去了臃肿的系统,而是以Docker守护进程代替,上层建立不同的容器,不同的应用镜像打包在不同的容器中,他们互相隔离。

03 虚拟化与docker的区别

docker设计小巧,部署迁移快速,运行高效,应用之间相互独立,管理人员可以看到所有容器的内容,虚拟化技术比较臃肿,不论什么应用都需要先创建新的系统,并且并非按照应用隔离,而是按照系统隔离,管理员无法看到系统内部信息。

举个例子,Docker就是手机中的各种APP,只需要一个系统就可以下载自己所需的应用,但是虚拟化技术相当于你的苹果手机安装一个庞大软件,这个软件上安装安卓系统、魅族系统等,每个系统上还要安装各类应用,比较麻烦。

但两者没有绝对的好坏,主要还是看应用场景,根据不同的需求选择不同的解决方案即可。

Docker与虚拟机介绍

虚拟机: 传统的虚拟机需要模拟整台机器包括硬件,每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给他的资源将全部被占用,每一个虚拟机包括应用,必要的二进制和库以及一个完整的用户操作系统。

容器(Docker): 容器与的宿主机共享硬件资源及操作系统可以实现资源的动态分配。容器包含应用和其所有的依赖包,但是与其他容器共享内核。容器在宿主机操作系统中,在用户空间以分离的进程运行。

虚拟机和容器都是在硬件和操作系统以上的,虚拟机有Hypervisor层(“翻译”客户系统和宿主系统之间的指令),Hypervisor是整个虚拟机的核心所在。他为虚拟机提供了虚拟的运行平台,管理虚拟机的操作系统运行。每个虚拟机都有自己的系统和系统库以及应用。

容器没有Hypervisor层,它是内核级的虚拟化,并且每个容器与宿主机共享硬件资源及操作系统,因此Docker容器不存在Hypervisor层带来性能的损耗,因此可以实现更高的性能和效率。但是虚拟机技术也有其优势,能为应用提供一个更加隔离的环境,不会因为应用程序的漏洞给宿主机造成任何威胁。

虚拟机是对硬件资源的虚拟,容器技术则是对进程的虚拟,从而可提供更轻量级的虚拟化,实现进程和资源的隔离。从架构来看,Docker比虚拟化少了两层,取消了hypervisor层和GuestOS层,使用 Docker Engine 进行调度和隔离,所有应用共用主机操作系统,因此在体量上,Docker较虚拟机更轻量级,在性能上优于虚拟化,接近物理机原生性能。

Docker的优势

持续部署与测试

更高效的利用系统资源

交付物标准化

应用隔离

高性能

最近刚好看了一部分docker的东西
先上图,vm与docker框架,直观上来讲 vm多了一层guest OS,同时Hypervisor会对硬件资源进行虚拟化,docker直接使用硬件资源 ,所以资源利用率相对docker低也是比较容易理解的

其次,openstack能够以10台/min的速度创建虚拟机,在docker面前就弱爆了,因为docker是利用宿主机的系统内核,所以可以做到在几秒钟之内创建大量容器,它们的 启动速度是在数量级上的差距

最后找了一个IBM测试案例,关于计算能力的,对于kvm为什么会有这么大的性能损失,一方面是因为虚拟机增加了一层虚拟硬件层,运行在虚拟机上的应用程序在进行数值计算时是运行在Hypervisor虚拟的CPU上的;另外一方面是由于计算程序本身的特性导致的差异。虚拟机虚拟的cpu架构不同于实际cpu架构,数值计算程序一般针对特定的cpu架构有一定的优化措施,虚拟化使这些措施作废,甚至起到反效果。比如对于本次实验的平台,实际的CPU架构是2块物理CPU,每块CPU拥有16个核,共32个核,采用的是NUMA架构;而虚拟机则将CPU虚拟化成一块拥有32个核的CPU。这就导致了计算程序在进行计算时无法根据实际的CPU架构进行优化,大大减低了计算效率。

从计算机软件层级来看,docker和虚拟机的区别在于虚拟的软件层级不一样。虚拟机基于同一个硬件,模拟出不同的操作系统;而docker基于同一个操作系统,模拟出不同的运行时环境。我们依次来看:

1. 先看看计算机的软件层次,从下到上依次为:操作系统内核、文件系统(运行时环境)、上层APP。

2. 虚拟机运行在同一个硬件上,可以虚拟出不同的操作系统。比如vmware可以在一台pc上既模拟出一个windows系统,同时也可以模拟出一台linux系统。 借助虚拟机,两个不同的操作系统可以同时运行在同一个硬件之上。

3. 而docker则运行在同一个操作系统内核上,虚拟出不同的文件系统或者也可以叫做运行时环境。不同的运行时环境,其对应的文件系统也是不同的。比如java的运行时环境就要求文件系统里存在jdk,而golang的运行时环境则需要有go相关的底层库。在docker上既可以虚拟出一个java的运行时环境,也可以虚拟出go的运行时环境。甚至, 基于docker,你既可以虚拟出一个java-1.6的运行时候环境,也可以虚拟出一个java-1.8的运行时环境,而这两个运行时环境可以同时运行在同一个操作系统之上

很高兴为您解答。

Docker悄无声息的来到我们身边,正在改变我们的开发、测试、部署应用的方式,那么,到底Docker和虚拟机VM有什么区别,我们通过一个图,再配上简明扼要的文字就很容易理解两者之间的区别。

首先要明确:Docker是一个开源的应用容器引擎,而VM是一个完整的操作系统。

1、使用VM运行多个相互隔离的应用

解释:

可以看到,APP #1、APP #2、APP #3如果要独立运行,相互隔离,则需要安装三个操作系统。如果一个虚拟操作系统按1G算,总共需要占3G的存储空间,更槽糕的是,光运行这三个操作系统就要耗费很大的内存和CPU。

2、使用Docker运行多个相互隔离的应用

DOCKER DAEMON:Docker守护进程,负责管理Docker容器。

Docker运行在主操作系统之上,APP #1、APP #2、APP #3在Docker中是完全隔离的、相经独立的容器。跟VM相比,省去了庞大的操作系统,耗费硬件资源较少。

除了以上架构上的差异之外,VM和Docker在启动时间上也有着很大的差距,VM启动大概需要2分钟的时间,而Docker启动则只需2秒。

随着互联网的发展,Docker的应用会越来越广,Build once,run anywhere,一次构建,到处运行。

docker是虚拟化软件运行环境。

虚拟机是虚拟化硬件。

层次不同。

虚拟机更消耗资源。但带来的是一个完整的可以不同于宿主机的操作系统。因为和宿主机操作系统不共享任何东西(包括硬件,内核,动态库,环境变量等),它的隔离性更好。

docker更轻量级,共享使用宿主机的硬件和内核,资源占用更少。它在宿主机内核基础上虚拟化了一个不同于宿主机的软件运行环境,比如动态库,环境变量等。可以说,docker和宿主机之间除了内核共享,其它都可以不同。

Docker容器启动、停止速度快rr Docker容器对资源需求较少rr Docker操作简单rr Dockerfile自动构建和部署方便

如何看待docker容器与虚拟机之间的比较

如何看待docker容器与虚拟机之间的比较
题主应该是不知道docker的意义,而不是否认这些技术优势吧。我试着分析一下意义:
1、启动快大部分情况下只影响了用户体验,但是对于负责大规模部署的运维来讲,意义还是挺大。一个东西上线是要一天,还是一个小时,情况是很不一样的。
2、资源利用高的意思是,虚拟化会消耗资源比容器多。不太准确地说,经过虚拟化层,留给用户的资源只剩90%,而容器可以剩下99%。对于云的意义直观来讲就是可以省钱啊。
3、性能开销的意义在于,由于存在一个虚拟化层,即使虚拟机独占所有的物理资源,但跑在里面的程序性能还是比物理机慢,这方面应该cpu内存还好一点,存储和其他外设就比较糟糕了。而容器只是一个进程,性能与物理机几乎一样。普通用户没什么感觉,但要求稍高一点的用户就有问题了

docker和虚拟机的区别 知乎

Docker
Docker是一个集开发、打包、运行应用于一体的开放式平台。Docker可以用来快速交付应用。使用Docker,你可以将应用程序从你的基础设施中分离出来,并将基础设施当做一个管理平台。Docker可以加快打包时间,加快测试,加快发布,缩短开发及运行代码之间的周期。Docker通过结合内核容器化特点和工作流,并使之工具化来实现这一切,帮助管理和发布你的应用。
虚拟机
虚拟机在本质上就是在模拟一台真实的计算机设备,同时遵循同样的程序执行方式。虚拟机能够利用虚拟机管理程序运行在物理设备之上。反过来,虚拟机管理程序则可运行在主机设备或者裸机之上。
传统的虚拟机需要模拟数台机器包括硬件,每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给他的资源将全部被占用。每一个虚拟机包含应用,必要的二进制和库,以及一个完整的用户操作系统。
Docker和虚拟机有什么区别?
虚拟机
1、资源占用多,虚拟机会独占一部分内存和硬盘空间。它运行的时候,其他程序就不能使用这些资源,哪怕虚拟机里面的应用程序,真正使用的内存只有1MB,虚拟机依然需要几百MB的内存才能运行。
2、冗余步骤多,虚拟机是完整的操作系统,一些系统级别的操作步骤,往往无法跳过,比如用户登录。
3、启动慢,启动操作系统需要多久,启动虚拟机就需要多久,可能需要等几分钟,应用程序才能真正运行。
Docker
1、启动快,容器里面的应用,直接就是底层系统的一个进程,而不是虚拟机内部的进程。所以启动容器相当于启动本机的一个进程,而不是启动一个操作系统,速度就快很多。
2、资源占用少,容器只占用需要的资源,不占用那些没有用到的资源;虚拟机由于是完整的操作系统,不可避免要占用所有资源;另外,多个容器可以共享资源,虚拟机都是独享资源。
3、体积小,容器只要包含用到的组件即可,而虚拟机是整个操作系统的打包,所以容器文件比虚拟机文件要小很多。

容器概述及与虚拟机区别

         容器: 容器是轻量级的操作系统级虚拟化,可以让我们在一个资源隔离的进程中运行应用及其依赖项 。

        运行应用程序所必需的组件都将打包成一个镜像并可以复用。执行镜像时,它运行在一个隔离环境中,并且不会共享宿主机的内存、CPU 以及磁盘,这就保证了容器内进程不能监控容器外的任何进程。容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟,而是对进程进行封装隔离。

         虚拟机:通常包含整个操作系统及其应用程序,同时也需要运行一个 hypervisor 来控制虚拟机。

        虚拟一套硬件后, 在其上运行一个完整操作系统,在该系统上在运行所需应用进程

         容量大小:

                虚拟机:大小一般是几个G,

                容器:容器是轻量级的而且大小在 M 以内

         性能:

                虚拟机:启动操作系统以及初始化托管应用会花费几分钟的时间

                容器:表现更加出色,并且几乎可以秒启动。

         架构:

        1. 敏捷环境:容器技术最大的优点是创建容器实例比创建虚拟机示例快得多,容器轻量级的脚本可以从性能和大小方面减少开销。

        2. 提高生产力:容器通过移除跨服务依赖和冲突提高了开发者的生产力。每个容器都可以看作是一个不同的微服务,因此可以独立升级,而不用担心同步。

        3. 版本控制:每一个容器的镜像都有版本控制,这样就可以追踪不同版本的容器,监控版本之间的差异等等。

        4. 运行环境可移植:容器封装了所有运行应用程序所必需的相关的细节比如应用依赖以及操作系统。这就使得镜像从一个环境移植到另外一个环境更加灵活。比如,同一个镜像可以在 Windows 或 Linux 或者 开发、测试或 stage 环境中运行。

        5. 标准化: 大多数容器基于开放标准,可以运行在所有主流 Linux 发行版、Microsoft 平台等等。

        6. 安全:容器之间的进程是相互隔离的,其中的基础设施亦是如此。这样其中一个容器的升级或者变化不会影响其他容器。

        1. 复杂性增加:随着容器及应用数量的增加,同时也伴随着复杂性的增加。在生产环境中管理如此之多的容器是一个极具挑战性的任务,可以使用 Kubernetes 和 Mesos 等工具管理具有一定规模数量的容器。

        2. 原生 Linux 支持:大多数容器技术,比如 Docker,基于 Linux 容器(LXC),相比于在原生 Linux 中运行容器,在 Microsoft 环境中运行容器略显笨拙,并且日常使用也会带来复杂性。

        3. 不成熟:容器技术在市场上是相对新的技术,需要时间来适应市场。开发者中的可用资源是有限的,如果某个开发者陷入某个问题,可能需要花些时间才能解决问题。

操作系统容器 :如维基百科中所述,“操作系统层虚拟化是一种计算机虚拟化技术,这种技术将操作系统内核虚拟化,可以允许多个独立用户空间的存在,而不是只有一个。这些实例有时会被称为容器、虚拟引擎、虚拟专用服务器或是 jails(FreeBSD jail 或者 chroot jail)。从运行在容器中的程序角度来看,这些实例就如同真正的计算机。”

如上所述,容器共享宿主机的内核,但是提供用户空间隔离。我们可以像在宿主机操作系统上一样,在容器中安装、配置以及运行应用程序。相似的是,分配给容器的资源仅对自己可见。就好比是,任何虚拟机不能获取其他虚拟机的资源。

当需要配置大量具有相同配置的操作系统时,操作系统容器就会非常有用。因此,容器有助于创建模板,可以用于创建与另一个操作系统类似风格的容器。

要创建操作系统容器,我们可以利用容器技术,如 LXC,OpenVZ,Linux VServer,BSD Jails 和 Solaris 区域。

应用容器 :如维基百科所述,“应用程序虚拟化是从其所执行的底层操作系统封装计算机程序的软件技术。一个完全虚拟化的应用,尽管仍像原来一样执行,但是并不会进行传统意义上的安装。应用在运行时的行为就像它直接与原始操作系统以及操作系统所管理的所有资源进行交互一样,但可以实现不同程度的隔离或者沙盒化。”

在这种情况下,术语 “虚拟化” 是指被封装的工件(应用程序),这与其在硬件虚拟化中的含义截然不同,其中它涉及被抽象的工件(物理硬件)。

应用程序容器旨在作为单个进程进行打包和运行服务,而在 OS 容器中,可以运行多个服务和进程。

容器技术如 Docker 和 Rocket 就是应用程序容器的示例。

docker和vmware区别

docker是容器,是操作系统上通过cgroup等技术隔离出部分资源,其使用的镜像里的系统通常是精简过的,一般都是用于实现特定的功能;
VMware是虚拟机,是在操作系统上通过虚拟化软件实现完整操作系统的安装,虚拟机上几乎可以实现物理机系统上全部功能。
虽然二者用途有些交叉,但并不完全重合。

Docker和传统虚拟机有什么区别

  Docker是一种轻量级的虚拟化技术,比传统的虚拟机性能更好,但也有人认为虚拟机比Docker更好,那么Docker和虚拟机哪个好?相信不少人对此有所疑问,具体内容请看下文:

  Docker和虚拟机有各自擅长的领域,在软件开发、测试场景和生产运维场景中各有优劣势:

  1、Docker启动快速属于秒级别,虚拟机通常需要几分钟去启动;

  2、Docker需要的资源更少,Docker在操作系统级别进行虚拟化,Docker容器和内核交互,几乎没有性能损耗,而虚拟机就差了很多;

  3、Docker更轻量,Docker的架构可以共用一个内核与共享应用程序库,所占内存极小;同样的硬件环境,Docker运行的镜像数远多于虚拟机数量,对系统的利用率非常高;

  4、与虚拟机相比,Docker隔离性更弱,Docker属于进程之间的隔离,虚拟机可实现系统级别隔离;

  5、Docker的安全性也更弱,Docker的租户root和宿主机root相同,一旦容器内的用户从普通用户权限提升为root权限,它就直接具备了宿主机的root权限,进而可进行无限制的操作。虚拟机租户root权限和宿主机的root虚拟机权限是分离的,并且虚拟机利用如Intel的VT-d和VT-x的ring-1硬件隔离技术,这种技术可以防止虚拟机突破和彼此交互,而容器至今还没有任何形式的硬件隔离;

  6、Docker的集中化管理工具还不算成熟,各种虚拟化技术都有成熟的管理工具,比如:VMware vCenter提供完备的虚拟机管理能力;

  7、Docker对业务的高可用支持是通过快速重新部署实现的,虚拟化具备负载均衡,高可用、容错、迁移和数据保护等经过生产实践检验的成熟保障机制,Vmware可承诺虚拟机99.999%高可用,保证业务连续性;

  8、虚拟化创建是分钟级别的,Docker容器创建是秒级别的,Docker的快速迭代性,决定了无论是开发、测试、部署都可以节省大量时间;

  9、虚拟机可以通过镜像实现环境交付的一致性,但镜像分发无法体系化,Docker在Dockerfile中记录了容器构建过程,可在集群中实现快速分发和快速部署。

mac安装docker 还是虚拟机

不是虚拟机,
docker和虚拟机的区别有:
1、虚拟机启动需要数分钟,而Docker容器可以在数毫秒内启动,由于没有臃肿的从操作系统,Docker可以节省大量的磁盘空间以及其他系统资源;
2、虚拟机更擅长于彻底隔离整个运行环境。例如,云服务提供商通常采用虚拟机技术隔离不同的用户。
Docker 是 Golang 编写的, 自 2013 年推出以来,受到越来越多的开发者的关注。如果你关注最新的技术发展,那么你一定听说过 Docker。
首先,大家需要明确一点,Docker容器不是虚拟机。(推荐学习:Docker视频教程)
Docker不停地给大家宣传,”虚拟机需要数分钟启动,而Docker容器只需要50毫秒”。
本质上的区别:
VM(VMware)在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓库,然后再安装应用;
Container(Docker容器),在宿主机器、宿主机器操作系统上创建Docker引擎,在引擎的基础上再安装应用。