Docker容器和虚拟机的核心区别和关系是怎么样的?很多同学不太清楚,下面我重点谈谈Docker容器和虚拟机核心区别@mikechen
Docker
Docker 是一种基于“容器技术” 的平台,用于构建、打包、和运行应用程序。
Docker ,它通过轻量级的容器,为应用提供了独立的运行环境,可以保证应用在不同环境中的一致性。
Docker,典型的特点:
- 资源消耗小: Docker 容器,共享宿主机的操作系统内核,只占用必要的资源。
- 启动快: Docker 容器,启动速度非常快,因为只需要加载容器镜像中的内容。
- 隔离性较弱: 相比虚拟机,Docker 容器之间的隔离性相对较弱。
虚拟机
虚拟机(VM, Virtual Machine),是通过硬件虚拟化技术 创建的独立计算环境。
虚拟机,模拟了一台完整的计算机,包括 :CPU、内存、存储和网络…等资源,可以运行一个独立的操作系统实例。
虚拟机 ,就像是一个租来的房子,你可以在里面装修,安装任何你喜欢的家具。
但是,这个房子是独立的,有自己的门锁、水电,与其他房子完全隔绝。
想象一下,你有一台电脑,现在你想在这台电脑上同时运行Windows和Linux系统。
怎么做呢?虚拟机就相当于在这台电脑里模拟出了另一台电脑,让你可以在这个模拟的电脑上安装任何你想要的操作系统。
每个虚拟机,都需要分配大量的系统资源(比如:CPU、内存、硬盘…等等),因为它们模拟了一整台电脑。
由于要加载整个操作系统,所以,虚拟机的启动时间较长。
Docker和虚拟机区别
1. 虚拟化层级不同
虚拟机,在硬件层面进行虚拟化,模拟出一整套完整的计算机系统,包括:CPU、内存、硬盘…等。
而Docker,在操作系统层面进行虚拟化,共享宿主机的操作系统内核,只为容器提供必要的运行环境。
所以,相对于虚拟机,Docker 容器更轻量级,启动速度更快。
2. 资源占用
由于虚拟机包含一个完整的操作系统,资源占用较高,包括:CPU、内存、和磁盘空间…等等。
Docker 容器共享宿主机的操作系统内核,只占用必要的资源。
并且,多个容器可以同时运行在同一台主机上,资源利用率更高。
3. 启动速度
虚拟机,启动虚拟机需要加载整个操作系统,启动时间较长,通常需要几分钟。
而Docker 容器,启动速度非常快,通常只需要几秒钟,因为只需要加载容器镜像中的内容。
4. 隔离性
虚拟机之间的隔离性较强,每个虚拟机都是一个独立的系统。
而Docker 容器之间的隔离性相对较弱,主要体现在文件系统和网络方面。
mikechen睿哥
mikechen睿哥,十余年BAT架构经验,资深技术专家,就职于阿里、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》