LXC
![本页使用了标题或全文手工转换](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
![]() | 此条目可参照英语维基百科相应条目来扩充。 (2023年6月28日) |
此条目需要补充更多来源。 (2023年6月28日) |
![](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/4/40/Linux_Containers_logo.png/100px-Linux_Containers_logo.png)
LXC,其名称来自Linux软体容器(Linux Containers)的缩写,一种作业系统层虚拟化(Operating system–level virtualization)技术,为Linux内核容器功能的一个用户空间接口。它将应用软体系统打包成一个软体容器(Container),内含应用软体本身的程式码,以及所需要的作业系统核心和函式库。透过统一的命名空间和共用API来分配不同软体容器的可用硬体资源,创造出应用程式的独立沙箱执行环境,使得Linux用户可以容易的创建和管理系统或应用容器。[1]
在Linux内核中,提供了cgroups功能,来达成资源的区隔化。它同时也提供了名称空间区隔化的功能,使应用程式看到的作业系统环境被区隔成独立区间,包括行程树,网路,使用者id,以及挂载的档案系统。但是cgroups并不一定需要启动任何虚拟机器。
LXC利用cgroups与名称空间的功能,提供应用软体一个独立的作业系统环境。LXC不需要Hypervisor这个软体层,软体容器(Container)本身极为轻量化,提升了建立虚拟机器的速度。软体Docker被用来管理LXC的环境。
特点
目前的LXC使用下列内核功能来控制进程:
- 内核命名空间(进程间通信、uts、mount、pid、network和user)
- AppArmor和SELinux配置
- Seccomp策略
- chroot(使用pivot_root)
- Kernel Capabilities
- cgroups
因此,LXC通常被认为介于“加强版”的chroot和完全成熟的虚拟机之间的技术。LXC的目标是建立一个尽可能与标准安装的Linux相同但又不需要分离内核的环境。
使用
- Proxmox VE: 它直到4.0版才使用LXC技术,在此之前的版本都是使用OpenVZ技术。
- Docker:它在0.9版之前都是使用LXC技术,但在0.9版之后,已不再是唯一且预设的执行环境。
参看
参考文献
- ^ What's LXC?. linuxcontainers.org. [2013-12-25]. (原始内容存档于2021-01-26).