跳转至

裸金属、虚拟机与容器的区别

很多刚开始学习 Linux、Docker 和 Kubernetes 的同学,经常会产生类似的问题:

  • Ubuntu 应该安装在哪里?
  • VMware 和 Docker 是同一种东西吗?
  • Docker 是一个操作系统吗?
  • Kubernetes 为什么需要 Linux?
  • ESXi 到底是什么?
  • 我的电脑应该先安装什么?

如果你也有这些疑问,那么这篇文章就是为你准备的。

在开始安装各种系统和软件之前,我们需要先理解计算资源的运行层次,以及裸金属、虚拟机和容器之间的区别。


为什么要了解这些概念

对于很多新手来说,学习路线往往是这样的:

Ubuntu
Docker
Kubernetes

但是在真正开始部署后,很快就会发现新的问题:

Ubuntu 安装在哪里?
Docker 安装在哪里?
Kubernetes 又安装在哪里?

如果没有理解底层架构,很容易陷入各种概念混乱。

实际上,它们之间存在明确的层级关系:

裸金属、虚拟机与容器关系图

理解这条链路后,后续学习 Linux、Docker 和 Kubernetes 会容易很多。


什么是裸金属(Bare Metal)

裸金属(Bare Metal)指真实存在的物理服务器或者计算机。

例如:

  • Dell PowerEdge R740
  • HPE ProLiant DL380
  • 联想 ThinkSystem SR650
  • 台式电脑
  • 笔记本电脑

这些设备都属于裸金属设备。

裸金属架构

最简单的运行方式如下:

应用程序
Linux / Windows
物理服务器

例如:

MySQL
Ubuntu Server
Dell R740

应用直接运行在操作系统上,操作系统直接运行在硬件上。


裸金属的优势

性能最佳

应用程序直接使用硬件资源。

不存在虚拟化开销。

适用于:

  • 数据库
  • 大数据平台
  • AI 训练
  • 高性能计算

稳定性高

系统结构简单。

出现问题时定位相对容易。


裸金属的缺点

资源利用率低

例如:

64核 CPU
256GB 内存

如果只运行一个业务系统。

大量资源会被闲置。


扩展能力有限

增加新系统通常需要新增服务器。

成本较高。


什么是虚拟机(Virtual Machine)

为了提高服务器资源利用率,虚拟化技术应运而生。

虚拟化允许一台服务器同时运行多个操作系统。

例如:

Ubuntu
Debian
Rocky Linux
Windows Server

同时运行在一台服务器上。


什么是 Hypervisor

Hypervisor(虚拟机监控程序)负责管理硬件资源,并创建虚拟机。

常见产品包括:

  • VMware ESXi
  • Proxmox VE
  • Microsoft Hyper-V
  • KVM

它们的职责是:

  • 管理 CPU
  • 管理内存
  • 管理存储
  • 管理网络
  • 创建虚拟机

虚拟机架构

Ubuntu VM
Debian VM
Windows VM
     ESXi
物理服务器

每个虚拟机都拥有:

  • 独立操作系统
  • 独立磁盘
  • 独立网络
  • 独立资源配置

从使用体验来看,与真实服务器几乎没有区别。


什么是 ESXi

很多新手会误以为:

ESXi 是 Linux 系统。

实际上并不是。

ESXi 是 VMware 提供的企业级裸金属虚拟化平台。

安装完成后:

服务器
ESXi
多个虚拟机

ESXi 不负责运行业务。

它负责管理虚拟机。


什么是 Proxmox VE

Proxmox VE(简称 PVE)是目前 HomeLab 圈子非常流行的虚拟化平台。

特点:

  • 开源免费
  • 支持 KVM 虚拟机
  • 支持 LXC 容器
  • Web 管理界面
  • 社区活跃

对于家庭实验室用户来说:

PVE

通常是:

ESXi

之外最热门的选择。


什么是容器(Container)

随着云原生技术的发展。

容器技术开始流行。

最典型的代表就是:

Docker

容器与虚拟机最大的区别在于:

容器并不运行完整操作系统。


Docker 架构

容器 A
容器 B
容器 C
Docker
Linux
服务器

Docker 运行在 Linux 上。

所有容器共享宿主机内核。


容器的优势

启动速度快

虚拟机:

30秒 ~ 数分钟

Docker:

数秒以内

资源占用低

虚拟机需要完整操作系统。

Docker 不需要。

因此可以在同样硬件资源上运行更多实例。


易于迁移

Docker 镜像可以快速部署到不同服务器。

非常适合现代应用交付。


Docker 与虚拟机的区别

虚拟机与容器对比图

对比项目 虚拟机 Docker
操作系统 每个实例独立系统 共享宿主机内核
启动速度
资源占用
部署效率 一般
隔离性 更强 较强
使用场景 系统级隔离 应用级部署

Kubernetes 又是什么

Docker 解决的是:

如何运行容器

Kubernetes 解决的是:

如何管理大量容器

例如:

100台服务器
5000个容器

如果全部手工管理:

  • 容器启动
  • 容器重启
  • 服务发现
  • 负载均衡
  • 滚动更新

几乎无法完成。

因此 Kubernetes 成为了容器编排标准。


它们之间是什么关系

企业环境最常见的部署架构如下:

物理服务器
ESXi
Ubuntu 虚拟机
Docker
Kubernetes
业务应用

这也是许多企业数据中心和云平台的典型架构。


HomeLab 应该怎么选择

如果你正在搭建自己的家庭实验室,可以参考以下方案。

入门方案

Windows
VMware Workstation
Ubuntu

适合:

  • Linux 学习
  • Docker 学习
  • Kubernetes 学习

进阶方案

ESXi
Ubuntu
Docker

适合长期实验环境。


企业模拟方案

ESXi
vCenter
Ubuntu
Kubernetes

适合运维工程师和平台工程师学习。


总结

裸金属、虚拟机和容器并不是竞争关系,而是不同层次的技术方案。

简单来说:

裸金属
虚拟化
操作系统
容器
Kubernetes

对于绝大多数学习者来说,推荐按照以下顺序学习:

  1. Linux 基础
  2. VMware 或 Proxmox
  3. Docker
  4. Kubernetes

掌握这条学习路线后,再进入云原生和平台工程领域会更加顺畅。


推荐阅读