LXC
Linux的作業系統級虛擬化
此條目可參照英語維基百科相應條目來擴充。 (2023年6月28日) |
此條目需要補充更多來源。 (2023年6月28日) |
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).