Daily Study
更新: 1/7/2026 字数: 0 字 时长: 0 分钟
Daily Plan
#todo
容器知识回顾
容器逃逸
两大常见方式:
- 配置不当导致的逃逸:特权模式、危险挂载(挂载procfs、挂载docker socket)、docker api未授权、Cgroup配置错误
- 容器漏洞和内核漏洞:例如dirtyCow漏洞
参照:Docker逃逸手法大全 - Yuy0ung - 博客园、docker逃逸方式总结分享-先知社区
一些工具:
MicroVM
问题:
- 传统 VM(如 KVM+QEMU):安全,但启动太慢(几秒到几分钟),内存开销大,不适合跑几百毫秒的函数。
- 普通容器(Docker):启动快(毫秒级),但共享内核,不安全(有多租户逃逸风险)
MicroVM:
- 极简主义:砍掉无关硬件模拟,干掉BIOS/UEFI直接跳转到Linux内核入口开始执行,定制的内核(去掉了大量无用的驱动,例如显卡驱动和USB驱动)
- 架构:基于KVM(虚拟化内核)的VMM(运行在宿主机上的普通 Linux 进程,在用户态),IO处理请求会发送给VMM进程,VMM进程在通过宿主机的系统调用完成。
优点:
- 强隔离:通过硬件虚拟化隔离,解决容器逃逸
- 秒级扩容:例如双十一流量突增,瞬间启动1000个函数实例,启动1000个VM需要几分钟,而MicroVM能够在一台宿主机上每秒启动150+个,实现按需扩容
- 高密度部署:内存开销低,降低成本。
| 特性 | 传统虚拟机 (VMware/QEMU) | 普通容器 (Docker) | 轻量级虚拟机 (MicroVM/Firecracker) |
|---|---|---|---|
| 隔离级别 | 硬件级 (强) | 进程/操作系统级 (弱) | 硬件级 (强) |
| 共享内核 | 否 (独立内核) | 是 (共享宿主机内核) | 否 (独立内核) |
| 启动速度 | 慢 (分钟/秒级) | 极快 (毫秒级) | 快 (毫秒级,<125ms) |
| 内存开销 | 高 (百MB起) | 低 (进程级) | 极低 (<5MB) |
| 攻击面 | 小 | 大 (几百个系统调用) | 极小 (几十个系统调用) |
| 适用场景 | 长期运行的重型应用 | 内部受信微服务 | 多租户 Serverless / 边缘计算 |
