docker和虚拟机的区别服务器,杜老师说容器:Docker 与虚拟机的区别

Docker 是一个开源应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 机器上,也可以实现虚拟化。虚拟机可以虚拟出一个完成的沙盒化平台,让开发者可以在完全隔离实体机的状态下开发或者运行程序。两者有什么区别呢?

运行架构

615061964b99496da02bc3f8eb2b1d31.png

上图详解

在上图中,左侧为 VM,右侧为 CONTAINER。

VM 和 CONTAINER 的最底层皆为基础设施服务器。

VM 第二层「倒数」为虚拟化平台,而 CONTAINER 则是主机系统。

VM 第三层运行虚拟系统,在虚拟系统中安装对应服务,最后运行应用。

CONTAINER 第三层则是自身容器,在容器内运行对应服务,及相关的应用。

容器一般会封装类库及应用,无需像虚拟机那样分别搭建。

两则对比

对比表格:

CONTAINER

VM

启动速度

秒级

分钟

运行性能

接近原生

百分之95

磁盘占用

MB

GB

数量

成百上千

约十几台

隔离能力

进程级别

系统级别

操作系统

只支持Linux

几乎所有

封装程度

只打包项目代码和依赖关系

完整操作系统

对比详解

CONTAINER 的启动速度极快,几乎是秒级的;VM 则是分钟级,因为要等里面运行的虚拟系统慢慢的启动。

CONTAINER 因为是进程级别运行,几乎是原生级运行性能;VM 是系统内再虚拟系统,所以会有性能耗损。

CONTAINER 占用的资源极小,几百 MB 即可跑一个服务;VM 不用说别的,就单虚拟系统就要几个 GB 了。

CONTAINER 因为占用资源小,故一台服务器运行百个千个不成问题;VM 的资源占用较大,所以一台服务器无法跑太多。

当前的 CONTAINER 内部环境只支持 Linux,所以一些运行在 Windows 的程序无法被封装;VM 则没有任何限制,因为它支持几乎所有的操作系统。

CONTAINER 只能打包项目代码和依赖关系,所以可运行的应用程序有限;VM 可运行完整操作系统,所以理论支持所有应用。

博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值