网站首页 > 技术教程 正文
Docker容器是非常核心的云原生技术,也是目前微服务的核心技术,下面我就全面来详解Docker及虚拟机核心区别@mikechen
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
Docker
Docker 是一个开源的容器化平台,能够将应用程序、及其依赖环境打包成轻量级、可移植的容器。
为什么Docker如此之风靡?原因很简单:因为Docker能很好的解决在不同环境中运行一致性,并且占用的资源还少,而且还快。
所以说,好的东西,就应该得到更多人的喜欢,因为Docker确确实实解决了我们平常开发和运维的问题。
比如:在如今的微服务架构中,我们可以将应用程序拆分成多个独立的服务,每个服务运行在独立的容器中。
这样,不仅方便开发、测试、和部署,而且Docker 容器可以在不同的操作系统和平台上运行,确保跨平台的一致性。
多个容器可以在同一台计算机上运行,并与其他容器共享其OS内核,每个容器在用户空间中作为隔离的进程运行。
虚拟机
虚拟机,全程是Virtual Machine,简称 “虚拟机VM”。
虚拟机,是一种利用软件模拟的计算机系统,它能够在物理硬件的基础上,运行多个虚拟计算机。
如下图所示:
虚拟机,是基于物理机(宿主机)上运行的独立计算环境,拥有独立的操作系统、应用程序、和资源。
比如:一台服务器,可以模拟出多台“虚拟机”。
这个时候,虚拟机运行在一个物理主机上,它的硬件资源(如: CPU、内存、磁盘...等),由宿主机提供并被虚拟化。
虚拟机的管理工具,常见的包括 :VMware、Hyper-V... 等,主要用于创建/和管理虚拟机。
虽然,看上去是多了几台“服务器”,但是多个虚拟机的操作系统,是共享同一个硬件环境中并存运行。
虽然虚拟机、和容器都是虚拟化技术,但它们的运行方式、和用途有所不同,下面我重点谈谈两者的区别@mikechen
Docker和虚拟机区别
如下图分别是Docker与虚拟机的实现框架对比:
虚拟机更重,容器相对轻量级
这是Docker和虚拟机最大的区别,我把它放到第一位。
首先,虚拟机提供完整的操作系统、和硬件环境,适用于需要隔离的多操作系统环境。
虚拟机由于每个虚拟机,都需要携带一个完整的操作系统(OS),这点非常的重要。
所以,采用虚拟机了,即使应用程序本身很小,整体体积也会因为操作系统的存在而变得庞大。
所以,这使得虚拟机不仅占用大量的存储空间,还在启动时需要加载整个操作系统,导致其启动时间较长、运行时的资源占用较高。
这也是为什么?Docker虚拟化技术风靡的最重要的原因。
Docker则通过共享宿主机操作系统的内核,避免了为每个应用程序分配一个独立的操作系统。
这样,每个 Docker 容器只包含:应用程序、及其依赖,减少了镜像的体积,并且启动速度更快,运行更加轻巧。
这也是 Docker 相比虚拟机最大的优势之一,尤其在微服务和容器化应用场景下显得非常有效。
虚拟机启动慢,容器启动快
刚才我已经谈到了两者最大的区别,就谈到了虚拟机需要携带操作系统(OS)。
所以,虚拟机的启动时间较长,这就很正常了,因为:虚拟机,需要启动完整的操作系统。
而Docker容器,不需要启动操作系统,因此具有更快的响应速度。
虚拟机占用资源多,容器占用资源小
由于虚拟机,需要运行一个独立的操作系统,因此资源开销较大。
比如:虚拟机需要占用较多的 CPU、内存、磁盘空间,并且每个虚拟机都有固定的资源分配。
所以,一台服务器一般也就不能虚拟很多“服务器”。
而Docker 容器,共享宿主机的操作系统内核,不需要额外的操作系统开销。
所以,占用资源更小,是“进程”级别的,所以资源利用率更高。
虚拟机适用重量级隔离,容器轻量级隔离
当然,说了这么多,也不是说虚拟机一无是处,关键是用对应用场景。
比如:虚拟机就适用于需要强隔离的多操作系统环境,常用于运行不同的操作系统、测试环境、或需要高安全性的场景。
而Docker容器,更适用于:微服务架构、持续集成与交付(CI/CD)、高密度部署、以及轻量级的隔离场景。
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
- 上一篇: 十大免费VMware工具,你知道哪些?
- 下一篇: 使用KVM登录虚拟机的控制台
猜你喜欢
- 2024-11-24 免费虚拟机软件VirtualBox创建虚拟机的方法
- 2024-11-24 创建虚拟机软件之vmware和Virtualbox
- 2024-11-24 虚拟机VMware与主机之间文件共享设置,您没有查看X内容所需的权限
- 2024-11-24 VMware虚拟机与主机之间无法复制粘贴解决
- 2024-11-24 VM vSphere7搭建服务器虚拟化集群Esxi主机配置一
- 2024-11-24 pve进阶之路-将现有ubuntu系统导入pve虚拟机
- 2024-11-24 VMware系列之常见问题及解决办法,一定有你踩过的坑,建议分享
- 2024-11-24 vmware VNC
- 2024-11-24 使用KVM登录虚拟机的控制台
- 2024-11-24 VMware系列之创建虚拟机+安装Linux操作系统(Centos),建议收藏
你 发表评论:
欢迎- 01-09单因素方差分析+作图
- 01-09描述性统计分析 之 均值分析
- 01-0986:重复性和再现性分析GRR(2)-GRR均值极差分析法和方差分析法
- 01-09SPC如何做方差分析,意义又在哪里?
- 01-09MedSPSS小课堂——多因素方差分析
- 01-09MedSPSS小课堂——双因素方差分析
- 01-09SPSS单因素方差分析的操作步骤及结果解读,陈老师SPSS数据分析
- 01-0914单因素方差分析:One-Way ANOVA
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)