天天看點

linux lxc 容器 原理,LXC(Linux Containers)安裝及使用

下面的步驟均在Ubuntu 12.04上執行。

安裝

想在Ubuntu上使用LXC,就要安裝LXC使用者空間工具,如下所示。

$ sudo apt-get install lxc

安裝完畢之後,運作lxc-checkconifg工具,檢查目前Linux核心支援LXC的情況。要是一切都已被啟用,核心對LXC的支援已準備就緒。

$ lxc-checkconfig

linux lxc 容器 原理,LXC(Linux Containers)安裝及使用

安裝LXC工具後,你會發現,LXC的預設網橋接口(lxcbr0)已自動建立(已在/etc/lxc/default.conf中加以配置)。

linux lxc 容器 原理,LXC(Linux Containers)安裝及使用

建立LXC容器後,視窗的接口就會自動連接配接到該網橋,那樣容器就能與外界進行聯系了。

使用方法

建立LXC

以建立一個名為precise的Ubuntu 12.04容器為例。

需要建立一個基礎的配置檔案。由于建立LXC完成後,不再需要該配置檔案(可以删除),故該檔案的名字和路徑沒有特殊要求。這裡命名為precise.conf,放在目前路徑下:

lxc.network.type = veth

lxc.network.flags = up

lxc.network.name = eth0

lxc.network.link = lxcbr0

lxcbr0為由LXC包建立的虛拟網橋,通過ifconfig可以知道其IP位址10.0.3.1,網段10.0.3.1/24,容器将通過lxcbr0與外界通信。

如此,可以開始建立容器了:

$ sudo lxc-create -n precise -f precise.conf -t ubuntu -- -r precise

-n指定容器名,這裡為precise。

-f指定基礎配置檔案,即上一步驟建立的precise.conf。

-t指定模闆名,這裡必須為ubuntu(建立Ubuntu 12.04)。每個模闆名,對應一個腳本,它們存放在/usr/lib/lxc/templates目錄(檔案名形如lxc-)中。

—以後的參數被傳遞給模闆腳本;

-r為ubuntu模闆腳本的參數,表示Ubuntu發行版代号,這裡必須為precise(它是12.04的發行代号)。

建立過程可能會比較漫長。通過閱讀/usr/lib/lxc/templates/lxc-ubuntu,不難發現建立ubuntu容器主要依靠deboostrap來完成。

啟動LXC

若需立即啟動LXC,則:

$ sudo lxc-start -n precise [command]

若需以daemon方式運作,則:

$ sudo lxc-start -n precise –d [command]

若需随host os啟動而自動啟動,則:

$ sudo ln -s /var/lib/lxc/precise/config /etc/lxc/auto/precise.conf

打開LXC控制台

在沒有給容器設定IP時,打開其控制台

$ sudo lxc-console -n precise

将看到文本登入界面。 通過按熱鍵ctrl-a和q,可以退出容器控制台。

更多的時候,通過ssh登入将更友善,特别是key認證方式登入。

停止LXC

多數情況下,可以通過在guest os(容器)内執行poweroff或shutdown -h now來關閉容器。但有些時候卻需要在host os上強行關閉容器,如:

$ sudo lxc-stop -n precise

删除LXC

容器建立後,配置和資料存放在/var/lib/lxc/precise目錄中。執行

$ sudo lxc-destroy -n precise

與手動删除該目錄效果一樣。