LXC
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 Capibilities
- 控制组(cgroups)
因此,LXC通常被认为介于“加强版”的chroot和完全成熟的虚拟机之间的技术。LXC的目标是建立一个尽可能与标准安装的Linux相同但又不需要分离内核的环境。
使用
- Proxmox VE: 它直到4.0版才使用LXC技術,在此之前的版本都是使用OpenVZ技術。
- Docker:它在0.9版之前都是使用LXC技術,但在0.9版之後,已不再是唯一且預設的執行環境。
参考文献
- . linuxcontainers.org. [2013-12-25]. (原始内容存档于2021-01-26).
外部連結
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.