Linux内核容器技术的历史、现状和展望-李泽帆.pdf
容器技术的历史、现状和展望
李泽帆lizefan@
Operating-system-level Virtualization
bin
boot
dev
etc
lizf
home
lib who
/
mnt
root
sbin
tmp
usr
var
Operating-system-level Virtualization
bin
boot
dev
etc
lizf
home
lib who
/
mnt home foo
root
…
sbin lib
tmp root1 …
usr var
var
home bar
root2 …
lib
…
var
最早的OS级虚拟化
• chroot :改变根目录
– 1982年出现该技术
– 只提供有限的文件系统隔离,没有任何其他隔离手段
– 不安全,有手段可以逃离设定的根目录访问host
• pivot_root:改变根文件系统
– 2000年,内核版本2.3.41
– 没有chroot 的安全问题
商用容器技术的出现
• Virtuozzo
– 2000年
– 由SWsoft (现在的Paralles)开发
• Linux-VServer
– 2001年
• 应用场景
– Virtual Private Server
开源的OpenVZ
• OpenVZ (Open Virtuozzo )
– 2005年发布
– 开始推动OpenVZ进Linux 内核主线
内核主线的容器技术
• Namespace + Cgroup
• Namespace
– 程序运行环境的隔离
– 基本原理:将内核中的全局变量改为per-namespace变量