2013年8月28日星期三

在 Ubuntu 上面 Linux Container 的使用心得

Linux Container (以下簡稱為 lxc) 是一個輕量級的虛擬化系統,介於 VirtualBox/VMWare/... 以及打過類固醇的 chroot 之間,簡單來說 lxc 建立了一個 chroot 的環境,但是這個 chroot 的環境卻可以做資源控制,像是 CPU 用量、硬碟空間、記憶體空間、網路還有其它資源等等。

我們可以在上面安裝其它 Linux Distribution 的環境,看看 /usr/share/lxc/templates 這個目錄底下有支援 Arch, Debian, Fedora, openSUSE, Ubuntu 還有其它。

lxc 也可以用來建立雲端作業環境,又或者用來玩 Steam(TM) 上面的遊戲。

參考 LXC LXC 這兩份線上文件也許是個不錯的入門起點。

在 Ubuntu 上面使用只要安裝 lxc 這個軟體套件就可以了。

sudo apt-get install lxc

如果是在 Ubuntu 12.04 上面,建議使用 precise-backports 裡面的 lxc 效果會比較好,如果想要在 x86 上面建立 arm 的虛擬環境就要借助安裝使用 qemu-user-static 這個軟體套件。

sudo apt-get install qemu-user-static

在使用 lxc 之前可以先執行 `lxc-checkconfig` 來檢查環境。

然後就可以開始建立一個 lxc 的實體了,例如想要建立 Ubuntu 12.04 i386 就可以執行以下指令。

sudo lxc-create -t ubuntu -n myLXC -- -r precise -a i386

當中的 precise 可以換成 quantal/raring/saucy/... 而 i386 則可以換成 amd64/armel/armhf/... 然後 myLXC 則是這個 lxc 實體的名稱。

等待一段時間後,等到它建立完成就可以執行以下指令在背景啟動它。

sudo lxc-start -n myLXC -d

如果想要登入就可以執行:

sudo lxc-console -n myLXC

如果想要離開就要使用特殊的指令組合 <Ctrl+a q>

`sudo lxc-list`
可以看到每個 lxc 的情況。
`sudo lxc-stop -n myLXC`
停止 myLXC 這個 lxc 實體。
`sudo lxc-destroy -n myLXC`
刪除 myLXC 這個 lxc 實體。
`sudo lxc-start-ephemeral -o myLXC -d`
從 myLXC 建立並啟動一個暫時用完即丟的 lxc 實體

大概就是這樣。:-)

P.S. 執行 `sudo SUITE=sid MIRROR=http://ftp.tw.debian.org/debian/ lxc-create -t debian -n sid` 可以用來建立一個 Debian sid 的環境。

張貼留言