核心本质

1、虚拟机:硬件虚拟化(Hypervisor)

虚拟CPU、内存、硬盘、网卡整套硬件,每一台虚拟机搭载一套完整操作系统

操作系统核心定义
操作系统(OS)是硬件与应用软件之间的中间层软件
作用:管理计算机硬件资源(CPU、内存、磁盘、网卡),为上层程序提供系统调用接口

2、容器:操作系统级虚拟化

不虚拟硬件,复用宿主机操作系统内核,仅仅隔离应用程序、依赖、文件环境,容器内部没有独立内核

①应用程序:要运行的业务代码 / 软件(flask 网站程序、nginx、ollama 大模型程序等)

②依赖(依赖库):程序运行离不开的支撑文件(解释器、动态库、软件包)

③文件环境:容器内部一套独立的目录结构(比如alpine 镜像里自带ls、cat、curl命令、各类默认配置文件)

多维度差异

1、虚拟化层级 -- 最核心区分点

-- 虚拟机:硬件层虚拟化

Hypervisor介于硬件和操作系统之间,模拟出虚拟硬件资源

-- 容器:操作系统内核层虚拟化

依托宿主机Linux内核提供的Namespace、Cgroups等功能隔离进程环境

2、操作系统内核

-- 虚拟机:拥有独立内核

每个VM可以自由安装CentOS、Windows、Ubuntu,互不干扰

-- 容器:共享宿主机内核

容器只有rootfs,不存在独立内核

3、隔离等级

-- 虚拟机:硬件级隔离

虚拟机之间完全独立,安全性高 --》一台虚拟机崩溃、中毒,很难影响宿主机与其他虚拟机

-- 容器:进程级弱隔离

容器本质是宿主机上一个被隔离的进程

所有容器共用同一个内核 --》若内核出现漏洞,所有容器都会受到威胁

4、启动速度

-- 虚拟机:分钟级别

需要模拟硬件、加载操作系统内核、启动各类系统服务

-- 容器:秒级别

不需要引导操作系统,只需要创建隔离进程,启动速度极快

5、资源占用

-- 虚拟机:资源开销大

分配的内存、CPU会被虚拟机完整占用,操作系统内核持续消耗资源,单机难以大规模部署

-- 容器:资源开销极小

没有额外操作系统开销,仅仅是普通隔离进程,单台服务器可同时运行数百个容器

6、镜像、磁盘大小

虚拟机镜像 -- GB级别

镜像包含内核、驱动、完整操作系统、软件

容器镜像:MB级别

镜像只包含应用程序、依赖库、配置文件,不含内核

7、网络协议栈

虚拟机 -- 拥有独立完整TCP/IP协议栈

具备独立虚拟网卡,和物理主机网络结构一致

容器 -- 共享宿主机内核TCP/IP协议栈

通过网桥、端口映射实现网络通信,没有独立完整协议栈

8、生命周期规则

虚拟机 -- 和物理电脑一致,可以开机、关机、重启、休眠

容器 -- 生命周期绑定内部PID 1 主进程

一旦PID 1 进程退出,容器直接停止

9、迁移与可移植性

虚拟机 -- 移植麻烦,镜像体积巨大;不同虚拟化平台镜像格式不通用

容器 -- 标准化镜像,一次构建,任意兼容内核的服务器均可运行,移植便捷

对比维度 虚拟机 (VM) 容器 (通用容器技术)
虚拟化类型 硬件虚拟化 操作系统内核虚拟化
内核 独立操作系统内核 共享宿主机内核
隔离强度 硬件级强隔离 进程级隔离(弱隔离)
启动耗时 分钟级 秒级
资源开销 很低
镜像体积 GB 级 MB 级
网络栈 独立完整 TCP/IP 栈 共享宿主机网络协议栈
核心技术 Hypervisor Namespace、Cgroups、联合文件系统
异构系统 支持 Windows/Linux 任意系统 受宿主机内核限制
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐