传统虚拟化技术
将此架构图从下上向上观察
-
Server层:物理服务器
-
Host OS层:运行在物理服务器之上的宿主机操作系统
-
Hyepervisor层:在宿主机操作系统之上又虚拟出一套硬件环境
-
Guest OS层:在虚拟出的硬件环境之上又虚拟出一套客户化的操作系统
-
Bins/Libs层: 在客户化操作系统之上提供基础二进制程序和类库
-
APP层:在基础二进制程序和类库之上运行着我们的应用程序/进程
Docker虚拟化技术
-
Serve层r:物理服务器 (与传统虚拟化相同)
-
Host OS层:运行在物理服务器之上的宿主机操作系统(与传统虚拟化相同)
-
Docker Engine:直接基于宿主机操作系统内核构建的Docker引擎 ,是一套软件环境(注意:并没有再虚拟出一套硬件,而是直接基于操作系统内核构建)
-
Bins/Libs: 在Docker引擎之上直接提供基础二进制程序和类库 (注意:并没有再虚拟出一套客户化的操作系统)
-
APP:在基础二进制程序和类库之上运行着我们的应用程序/进程**(与传统虚拟化相同)**
举例对比
例如服务器上的运行着一个应用程序A,想要向磁盘上写入一个文件。
- 传统虚拟化需要3步:
- 应用将文件写入虚拟的客户化操作系统Guest OS
- 再将文件写入虚拟出来的硬件环境
- 再通过宿主机操作系统,写入到真正的物理服务器磁盘上
- Docker只需1步:
- 应用通过Docker引擎,直接将文件通过宿主机操作系统,写入到真正的物理服务器磁盘上
知识点总结
- Docker直接基于宿主机操作系统内核构建
- 不用再虚拟出一套硬件环境
- 不用再虚拟出客户化的操作系统
- 所有操作直达宿主机操作系统内核,所以在各方面性能指标完全优于传统虚拟化技术
系列文章导读
开发人员的痛苦
很多公司并没有专门的运维岗人员,开发人员什么都做,每天都要进行多次的代码编译、构建、发布。测试、生产、预生产,环境多、频率高、效率低、出错频繁。
因此我打造了一门轻快的容器化持续集成和部署的课程。就为了解决开发人员搭建持续集成体系,成倍的增长开发效率、学习效率。
让你掌握Docker+Git+Maven+Jenkins+Pipeline流水线持续集成部署,开发人员也可以起飞。点击试听 CSDN视频课程,用我的经验,节省你的时间。