PVE 创建 LXC 容器全流程,以及它与 KVM 虚拟机的区别

2239 字
11 分钟
PVE 创建 LXC 容器全流程,以及它与 KVM 虚拟机的区别
2026-10-17
浏览量 加载中...

用 Proxmox VE(PVE)的时候,创建工作负载有两个入口:右上角的「创建虚拟机」(KVM)和「创建 CT」(LXC)。两者看起来只是向导页面不一样,实际上底层原理差别很大,内存、磁盘、稳定性的表现也都不同。

这篇文章先介绍一下 LXC 的创建流程(基于 PVE 9.1.1 的中文界面),再系统对比 LXC 和 KVM。

一、先搞清楚 LXC 和 KVM 是什么#

LXCKVM
本质容器,和宿主机共用同一个内核完整虚拟机,有独立的内核和虚拟硬件
隔离方式namespace + cgroup硬件虚拟化(QEMU + KVM)
能运行的系统只能是 Linux(共用宿主机内核)Linux、Windows、BSD 等几乎都行
启动速度秒级要完整走一遍开机流程
资源开销很小相对较大

一句话概括:LXC 是”轻量级的隔离环境”,KVM 是”一台完整的虚拟电脑”。

二、创建 LXC 容器的完整流程#

点击右上角的「创建 CT」,会打开创建向导,顶部依次是:常规 → 模板 → 磁盘 → CPU → 内存 → 网络 → DNS → 确认。

1. 常规#

选项说明
节点创建到哪个 PVE 节点,单机环境只有一个
CT ID容器的唯一编号,PVE 会自动给出下一个可用编号(例如 101),虚拟机和容器共用同一套编号
主机名容器的 hostname,必填
资源池可选,用来给一批容器或虚拟机分组、做权限管理
无特权的容器建议保持勾选。容器里的 root 会被映射为宿主机上的普通用户,安全性更高
嵌套勾选后容器里可以再跑 Docker 之类的东西,需要的话保持勾选
Add to HA加入高可用,单机环境不用管
密码 / 确认密码容器 root 用户的密码,必填(和 SSH 公钥二选一或都填)
SSH 公钥可粘贴公钥,也可以点「加载SSH密钥文件」导入,之后可免密登录

关于「无特权的容器」:它安全,但访问宿主机设备、挂载某些文件系统时会有权限限制。如果必须用特权容器,要清楚它的风险。

2. 模板#

LXC 不是用 ISO 安装系统,而是从模板解压出一个根文件系统。

  • 选择存储(通常是 local)和模板文件,例如 debian-12-standard、ubuntu-24.04-standard
  • 如果下拉列表里没有模板,需要先下载:在左侧选中存储(如 local)→ CT 模板 → 模板,选择想要的系统点击下载
  • 模板文件名里的版本号会随时间更新,以你实际看到的为准

3. 磁盘#

  • 选择存储位置,设置根磁盘大小(GiB)
  • 要点:LXC 的磁盘只能调大,不能调小,所以不用一开始给太多,用多少给多少,之后再扩

4. CPU#

  • 设置核数,这是限制容器最多能用几个核
  • 同样是上限,不是独占,容器空闲时不会占用这些核
  • 之后可以在线修改

5. 内存#

  • 内存(MiB):内存上限
  • 交换空间(MiB):容器的 swap 额度,可以设为 0 或较小的值

这里是 LXC 和 KVM 最大的区别之一:LXC 的内存本质是 cgroup 的上限,不会预先占用,用多少占多少,释放后宿主机能立刻拿回去(详见下文对比)。

6. 网络#

  • 名称:容器内的网卡名,默认 eth0
  • 桥接:默认 vmbr0,也就是和宿主机在同一个局域网
  • IPv4:选择 DHCP(由路由器分配)或 静态(手动填 IP/CIDR 和网关)
  • IPv6、VLAN 标签、防火墙按需设置

建议在路由器里给容器做 DHCP 保留,或者直接设静态 IP,方便以后固定访问。

7. DNS#

  • 默认「使用主机设置」就行
  • 也可以手动指定 DNS 域和 DNS 服务器

8. 确认#

  • 检查所有配置是否正确
  • 勾选「创建后启动」可以创建完立刻开机
  • 点击「完成」,在底部任务栏里能看到创建任务,状态为 OK 就成功了

三、命令行创建(可选)#

如果想批量创建或写成脚本,可以直接用 pct:

Terminal window
# 创建容器 101(模板文件名请以实际下载的为准)
pct create 101 local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst \
--hostname demo \
--memory 2048 \
--swap 512 \
--cores 2 \
--rootfs local-lvm:8 \
--net0 name=eth0,bridge=vmbr0,ip=dhcp \
--unprivileged 1 \
--features nesting=1 \
--password \
--start 1

创建后常用的管理命令:

Terminal window
pct start 101 # 启动
pct stop 101 # 停止
pct enter 101 # 直接进入容器的 shell
pct set 101 --memory 4096 # 在线调整内存上限
pct config 101 # 查看配置

四、LXC 与 KVM 的核心区别#

1. 内存:上限 vs 向宿主机申请#

LXC

  • 设置的内存是 cgroup 的上限(memory.max)
  • 容器启动时不会预先占用,用多少占多少,释放后宿主机立刻拿回
  • 宿主机不会主动”抽走”容器的内存,所以没有 Ballooning 那种因为被回收而死机的问题
  • 超过上限时,内核先回收容器自己的缓存,不够再触发 cgroup OOM,只会杀容器里的进程,不会拖垮宿主机

KVM

  • 虚拟机有独立的内核,宿主机看到的只是 QEMU 进程占用的内存
  • 客户机用过的内存(包括缓存)QEMU 会一直占着,即使客户机已经释放,所以 PVE 里的内存用量常常偏高,甚至接近 100%
  • 想让内存可回收需要开启 Ballooning,但这个功能在某些场景下容易引发卡死(OOM、驱动问题、与 PCI 直通不兼容等),稳定性优先的话,很多人会选择关闭

2. 内存可见性#

LXCKVM
PVE 里显示的内存实时、准确默认只是 QEMU 进程占用
想看客户机内部真实用量不需要额外配置需要 QEMU Guest Agent,或在虚拟机内部监控

建议:KVM 虚拟机安装并启用 QEMU Guest Agent。它常驻内存只有几 MB 到十几 MB,对内存几乎没有影响,却能带来更准确的状态显示、IP 显示、正常关机和一致性备份。

3. 热调整#

LXCKVM
修改内存在线生效,无需重启通常需要关机再开机(内存热插拔配置较麻烦)
修改 CPU 核数在线生效视配置而定
扩容磁盘在线可调大可调大,客户机内还要再扩分区和文件系统
缩小磁盘不支持同样不建议

创建时设错了也不用慌,LXC 随时都能改。

4. 隔离性与兼容性#

  • KVM 隔离更彻底:拥有独立内核,一个虚拟机的内核崩溃不会影响其他。可以运行 Windows、可以安装不同内核版本,也支持显卡、HBA 等 PCI 直通
  • LXC 隔离相对弱:所有容器共用宿主机内核,如果宿主机内核出问题,所有容器一起受影响。只能运行 Linux,容器里也不能随意换内核、加载内核模块
  • 需要内核级功能的软件(某些 VPN、需要特殊内核模块的程序等)在 LXC 里可能跑不起来或需要额外配置

5. 资源占用与启动速度#

  • LXC 没有虚拟硬件层,也不需要完整开机流程,CPU 和内存开销很小,通常几秒就能启动
  • KVM 需要模拟硬件、引导系统,开销更大,但换来了更完整的兼容性

6. 备份与迁移#

  • 两者都支持 PVE 自带的备份(vzdump)和快照,用法基本一致
  • LXC 的备份体积通常更小、速度更快
  • KVM 的备份可配合 Guest Agent 做一致性冻结

五、怎么选?#

适合用 LXC 的场景

  • 轻量级 Linux 服务:Nginx、数据库、各类 Web 应用、DNS、监控、下载工具等
  • 追求资源利用率,想在一台机器上跑很多个服务
  • 需要频繁调整内存、CPU,不想重启

适合用 KVM 的场景

  • 需要运行 Windows 或其他非 Linux 系统
  • 需要独立内核、特殊内核模块
  • 需要 PCI 直通(显卡、网卡、HBA 等)
  • 对安全隔离要求高,不放心共用内核

一个简单的经验:能用 LXC 的 Linux 服务就用 LXC,需要完整系统或强隔离时再用 KVM。

总结#

  • LXC 创建流程简单:常规 → 模板 → 磁盘 → CPU → 内存 → 网络 → DNS → 确认
  • LXC 的内存、CPU 都是上限,按需使用,在线可调;磁盘只能扩不能缩
  • KVM 是完整虚拟机,内存默认被 QEMU 占住不归还,要看真实用量需要 Guest Agent
  • Ballooning 收益不稳定、坑多,稳定优先可以关闭,只保留 Guest Agent
  • 轻量 Linux 服务选 LXC,Windows、直通、强隔离选 KVM

两者并不是谁取代谁,在同一台 PVE 上混用,才是最合理的方式。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

评论区

Profile Image of the Author
加菲魚
堆内存中的一个持久化对象。
分类
标签
站点统计
文章
30
分类
6
标签
20
总字数
38,251
访问量
...
访客数
...
运行时长
0 天
最后活动
0 天前

目录