Docke容器和虚拟机区别详解(4大核心区别)

Docke容器和虚拟机区别详解(4大核心区别)-mikechen

Docker容器和虚拟机的核心区别和关系是怎么样的?很多同学不太清楚,下面我重点谈谈Docker容器和虚拟机核心区别@mikechen

Docker

Docke容器和虚拟机区别详解(4大核心区别)-mikechen

Docker 是一种基于“容器技术” 的平台,用于构建、打包、和运行应用程序。

Docker ,它通过轻量级的容器,为应用提供了独立的运行环境,可以保证应用在不同环境中的一致性。

Docker,典型的特点:

Docke容器和虚拟机区别详解(4大核心区别)-mikechen

  • 资源消耗小: Docker 容器,共享宿主机的操作系统内核,只占用必要的资源。
  • 启动快: Docker 容器,启动速度非常快,因为只需要加载容器镜像中的内容。
  • 隔离性较弱: 相比虚拟机,Docker 容器之间的隔离性相对较弱。

 

虚拟机

虚拟机(VM, Virtual Machine),是通过硬件虚拟化技术 创建的独立计算环境。

虚拟机,模拟了一台完整的计算机,包括 :CPU、内存、存储和网络…等资源,可以运行一个独立的操作系统实例。

Docke容器和虚拟机区别详解(4大核心区别)-mikechen

虚拟机 ,就像是一个租来的房子,你可以在里面装修,安装任何你喜欢的家具。

但是,这个房子是独立的,有自己的门锁、水电,与其他房子完全隔绝。

想象一下,你有一台电脑,现在你想在这台电脑上同时运行Windows和Linux系统。

怎么做呢?虚拟机就相当于在这台电脑里模拟出了另一台电脑,让你可以在这个模拟的电脑上安装任何你想要的操作系统。

每个虚拟机,都需要分配大量的系统资源(比如:CPU、内存、硬盘…等等),因为它们模拟了一整台电脑。

由于要加载整个操作系统,所以,虚拟机的启动时间较长。

 

Docker和虚拟机区别

Docke容器和虚拟机区别详解(4大核心区别)-mikechen

1. 虚拟化层级不同

虚拟机,在硬件层面进行虚拟化,模拟出一整套完整的计算机系统,包括:CPU、内存、硬盘…等。

而Docker,在操作系统层面进行虚拟化,共享宿主机的操作系统内核,只为容器提供必要的运行环境。

所以,相对于虚拟机,Docker 容器更轻量级,启动速度更快。

2. 资源占用

由于虚拟机包含一个完整的操作系统,资源占用较高,包括:CPU、内存、和磁盘空间…等等。

Docker 容器共享宿主机的操作系统内核,只占用必要的资源。

并且,多个容器可以同时运行在同一台主机上,资源利用率更高。

3. 启动速度

虚拟机,启动虚拟机需要加载整个操作系统,启动时间较长,通常需要几分钟。

Docker 容器,启动速度非常快,通常只需要几秒钟,因为只需要加载容器镜像中的内容。

4. 隔离性

虚拟机之间的隔离性较强,每个虚拟机都是一个独立的系统。

而Docker 容器之间的隔离性相对较弱,主要体现在文件系统和网络方面。

mikechen睿哥

mikechen睿哥,十余年BAT架构经验,资深技术专家,就职于阿里、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法