docker的应用越来越多,与虚拟机的核心区别是什么?

docker的应用越来越多,他与虚拟机的核心区别是什么?

参与33

8同行回答

magicyang168magicyang168云计算开发工程师博云
虚拟机是一套完整的OS,隔离性最强,但是同时也是其缺点,复杂冗余,略显笨重。docker是依赖linux内核技术的轻量级容器技术,并且支持dockfile的定制化加载,灵活而轻巧。显示全部

虚拟机是一套完整的OS,隔离性最强,但是同时也是其缺点,复杂冗余,略显笨重。docker是依赖linux内核技术的轻量级容器技术,并且支持dockfile的定制化加载,灵活而轻巧。

收起
软件开发 · 2020-08-10
浏览2614
chinesezzqiangchinesezzqiang课题专家组信息技术经理M
都是虚拟化技术,只不过docker是基于内核的虚拟化,虚拟机是基于“镜像”的技术。1.Docker实现秒级启动,虚拟机一般都要分钟级启动;2.Docker通过build-ship-run实现快速部署,虚拟机一般要经过安装、调试、兼容性考虑等部分(与装物理机无异);3.Docker是敏捷开发的佼佼者,虚拟机过于笨...显示全部

都是虚拟化技术,只不过docker是基于内核的虚拟化,虚拟机是基于“镜像”的技术。
1.Docker实现秒级启动,虚拟机一般都要分钟级启动;
2.Docker通过build-ship-run实现快速部署,虚拟机一般要经过安装、调试、兼容性考虑等部分(与装物理机无异);
3.Docker是敏捷开发的佼佼者,虚拟机过于笨重。
4.还有很多不同。。。

收起
IT其它 · 2020-04-07
浏览2928
xuyutingxuyuting项目经理同盾科技有限公司
本质区别:虚拟机的虚拟化:通过kvm、xen技术,虚拟出操作系统的运行环境如内存、cpu、设备等,可以在其上运行linux、windows等操作系统。重点中的重点,宿主机操作系统与虚拟机中的操作系统是两个完全隔离的环境。docker:容器技术本质上就是一个守护进程拉起一个子进程,守护进程在...显示全部

本质区别:
虚拟机的虚拟化:通过kvm、xen技术,虚拟出操作系统的运行环境如内存、cpu、设备等,可以在其上运行linux、windows等操作系统。重点中的重点,宿主机操作系统与虚拟机中的操作系统是两个完全隔离的环境。
docker:容器技术本质上就是一个守护进程拉起一个子进程,守护进程在启动子进程前通过cgroup、namespace等,将linux系统的各种文件做了隔离,如pid、cpu、mem、net等。重点中的重点,容器只是宿主机上的一个进程,依赖宿主机linux系统操作内核运行,即容器没有自己真正意义上的操作系统。

收起
互联网服务 · 2020-03-10
浏览3347
ruffylangziruffylangzi软件架构设计师博云
1.实现区别:虚拟机的本质实现硬件资源可编程,是操作系统级别的复制与移植;容器的本质是基于共享内核基础之上的进程级隔离(例如namespace,cGroup,UnionFs分别实现进程,网络,文件系统的隔离);2.应用场景区别:虚拟机设计之初是对硬件资源进行再分配,提高资源利用率,属于基础设施一部分;容...显示全部

1.实现区别:虚拟机的本质实现硬件资源可编程,是操作系统级别的复制与移植;容器的本质是基于共享内核基础之上的进程级隔离(例如namespace,cGroup,UnionFs分别实现进程,网络,文件系统的隔离);
2.应用场景区别:虚拟机设计之初是对硬件资源进行再分配,提高资源利用率,属于基础设施一部分;容器设计之初是构造最小的应用运行环境单元,为应用服务,属于应用层;

收起
软件开发 · 2019-05-08
浏览4321
李守超李守超系统架构师博云
VMWare/OpenStack的虚拟化技术为我们打开了一扇新的大门,原来我们可以不用如此麻烦的管理物理机,采用虚拟化的技术,同时辅助各种工具,可以更好的实现对资源的管理,提高资源的利用率。当没有容器技术时,为了实现应用的快速发布和运维,会有两个问题:应用以虚拟机镜像的方式发布:相比...显示全部

VMWare/OpenStack的虚拟化技术为我们打开了一扇新的大门,原来我们可以不用如此麻烦的管理物理机,采用虚拟化的技术,同时辅助各种工具,可以更好的实现对资源的管理,提高资源的利用率。当没有容器技术时,为了实现应用的快速发布和运维,会有两个问题:

  1. 应用以虚拟机镜像的方式发布:相比于容器镜像,因为要包含内核以及操作系统的文件,所以会大很多。另外镜像构建和编辑的过程不如容器镜像方便。
  2. 服务调度以虚拟机的粒度实现:由于虚拟机内的进程要多很多,一方面会造成资源浪费,另一方面,在评估资源占用率上,虚拟机也没有容器方式更加科学和准确。

如果没有虚拟化,容器编排系统Kubernetes直接接入物理机,如果说在私有云情况下还可以通过一系列物理机纳管工具实现灵活的资源分配与回收,那么在公有云场景下,厂商将自己的物理服务器都拿出来供用户自由申请分配,单是想想就能明白,对用户来说成本只会高不低,推广难度自然是很大。当然,为了特定的需求,公有云厂商为用户直接提供特定硬件的服务器,甚至是托管数据中心,是另外一种场景了。

总的来说,虚拟化技术使得数据中心内的管理对象从静态的物理机编程动态的虚拟机,容器技术则是在虚拟化技术基础之上实现应用的打包构建、部署调度和运行,二者绝不是为了解决同一种问题搞出来两种方案,而是互为补充,二者结合起来才使得云计算IaaS/PaaS理念真正落地。

收起
软件开发 · 2019-05-07
浏览4449
StevenSteven课题专家组IT顾问steven
虚拟化更多是资源池,共享,敏捷也是其相对于传统物理服务器一个特点,是资源层的,相对是稳态容器更多是敏态,强调轻量无状态,敏捷弹性,是应用层的,是虚拟机资源层的敏捷没法比的...显示全部

虚拟化更多是资源池,共享,敏捷也是其相对于传统物理服务器一个特点,是资源层的,相对是稳态
容器更多是敏态,强调轻量无状态,敏捷弹性,是应用层的,是虚拟机资源层的敏捷没法比的

收起
证券 · 2019-05-07
浏览4285
namelessnameless技术总监某云计算厂商
1、虚拟化原理不一样,尽管很多人现在把容器当虚拟机使用2、适用场景不同,容器有自己的特点,比如启动快、使用资源更少、扩缩容方便等,容器更偏业务一些3、主机运行容器使用同一个主机内核,安全性没有虚拟机高举例说明,目前在生产环境,容器跑数据库的不多,数据库还是运行的传统环...显示全部

1、虚拟化原理不一样,尽管很多人现在把容器当虚拟机使用
2、适用场景不同,容器有自己的特点,比如启动快、使用资源更少、扩缩容方便等,容器更偏业务一些
3、主机运行容器使用同一个主机内核,安全性没有虚拟机高

举例说明,目前在生产环境,容器跑数据库的不多,数据库还是运行的传统环境或者虚拟机环境,中间件容器化的比较多。

收起
软件开发 · 2019-05-07
浏览4269
evilswordevilsword系统架构师艺鉴通
1.Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。 其次,Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。2.容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行 10...显示全部

1.Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。 其次,Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。

2.容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而Docker 只需要启动 10 个隔离的应用即可。

3.虚拟化技术依赖物理CPU和内存,是硬件级别的;而docker构建在操作系统上,利用操作系统的containerization技术,所以docker甚至可以在虚拟机上运行。

4.虚拟化系统一般都是指操作系统镜像,比较复杂,称为“系统”;而docker开源而且轻量,称为“容器”,单个容器适合部署少量应用,比如部署一个redis、一个memcached。

5.传统的虚拟化技术使用快照来保存状态;而docker在保存状态上不仅更为轻便和低成本,而且引入了类似源代码管理机制,将容器的快照历史版本一一记录,切换成本很低。

6.传统的虚拟化技术在构建系统的时候较为复杂,需要大量的人力;而docker可以通过Dockfile来构建整个容器,重启和构建速度很快。更重要的是Dockfile可以手动编写,这样应用程序开发人员可以通过发布Dockfile来指导系统环境和依赖,这样对于持续交付十分有利。

7.当然KVM对比于容器也有一个比较大的优势就是可以使用不同的操作系统或内核。所以,举例说,你可以使用微软Azure,同时运行Windows Server2012的实例和SUSE Linux企业级服务器的实例。至于Docker,所有容器都必须使用同样的操作系统和内核。

收起
互联网服务 · 2019-05-07
浏览4415

提问者

malukuo_33
系统运维工程师国通星驿
擅长领域: Docker容器引擎云计算

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2019-05-05
  • 关注会员:10 人
  • 问题浏览:8632
  • 最近回答:2020-08-10
  • X社区推广