LXC

Linux的作業系統級虛擬化

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使用下列內核功能來控制進程:

因此,LXC通常被認為介於「加強版」的chroot和完全成熟的虛擬機之間的技術。LXC的目標是建立一個儘可能與標準安裝的Linux相同但又不需要分離內核的環境。

使用

編輯
  • Proxmox VE: 它直到4.0版才使用LXC技術,在此之前的版本都是使用OpenVZ技術。
  • Docker:它在0.9版之前都是使用LXC技術,但在0.9版之後,已不再是唯一且預設的執行環境。

參看

編輯

參考文獻

編輯
  1. ^ What's LXC?. linuxcontainers.org. [2013-12-25]. (原始內容存檔於2021-01-26). 

外部連結

編輯