LXC簡單介紹與使用
簡介
LXC(LinuX Containers)Linux容器,一種作業系統層虛擬化技術,為Linux核心容器功能的一個使用者空間介面。它將應用軟體系統打包成一個軟體容器(Container),內含應用軟體本身的程式碼,以及所需要的作業系統核心和庫。透過統一的名字空間和共享API來分配不同軟體容器的可用硬體資源,創造出應用程式的獨立沙箱執行環境,使得Linux使用者可以容易的建立和管理系統或應用容器。
在Linux核心中,提供了cgroups功能,來達成資源的隔離。它同時也提供了名稱空間隔離的功能,使應用程式看到的作業系統環境被區隔成獨立區間,包括程序樹,網路,使用者id,以及掛載的檔案系統。但是cgroups並不一定需要啟動任何虛擬機器。
LXC利用cgroups與名稱空間的功能,提供應用軟體一個獨立的作業系統環境。LXC不需要Hypervisor這個軟體層,軟體容器(Container)本身極為輕量化,提升了建立虛擬機器的速度。
而Docker本質來說不是容器,而是容器的管理工具,最初的Docker也是基於LXC實現的。
LXC關鍵技術點:
- chroot,根切換,從容器內的角度來看,彷彿真的有自己的根樹
- namespaces:名稱空間,負責將資源隔離,比如pid,網路,mnt,user,uts等
- CGroups:控制組,負責控制資源的分配
LXC基本架構
LXC常用命令
-
lxc-checkconfig
檢查系統環境是否滿足容器使用要求; -
lxc-create
建立lxc容器;
格式:lxc-create -n NAME -t TEMPLATE_NAME -
lxc-start
啟動容器;
格式:lxc-start -n NAME -d -
lxc-info
檢視容器相關的資訊;
格式:lxc-info -n NAME -
lxc-console
附加至指定容器的控制檯;
格式:lxc-console -n NAME -t NUMBER -
lxc-stop
停止容器; -
lxc-destory
刪除處於停機狀態的容器; -
lxc-snapshot
建立和恢復快照; -
退出容器方式:<Ctrl+a q>
LXC簡單使用
第一步:安裝LXC與網橋管理工具包
lxc在epel源中所以需要先新增epel源倉庫
yum install -y epel-release
yum install lxc-templates lxc bridge-utils -y
第二步:新增網橋
下面幾步最好同時執行,否則如果你在xshell終端上會斷網
brctl addbr virbr0 #新增網橋
brctl addif virbr0 ens33 ; # 將網橋關聯到ens33這個網絡卡 \
ip addr del dev ens33 192.168.253.128/24 ; #把網絡卡上的ip刪了 \
ifconfig virbr0 192.168.253.128/24 up #給網橋配置ip \
route add default gw 192.168.253.2 #設定預設閘道器
第三步:檢查系統是否滿足容器使用要求
lxc-checkconfig
沒有什麼錯誤,表示沒問題
第四步:建立LXC容器
建立LXC容器要基於模版,這裡使用/usr/share/lxc/templates/lxc-centos這個模版,這個模版其實就是一個指令碼,定義了這個容器需要的檔案,環境,然後去指定的映象源安裝。這個其實也是LXC容器一個缺點,顯得太過笨重臃腫了。
lxc-create --name=lxc_test1 -t /usr/share/lxc/templates/lxc-centos
安裝完成之後
這個是說,root密碼存放的位置在/var/lib/lxc/lxc_test1/tmp_root_pass中,如果你想自己修改root密碼可以使用chroot /var/lib/lxc/lxc_test1/rootfs passwd這個命令
這裡我們自己修改一下密碼為123456
第五步:啟動容器
啟動容器
lxc-start -n lxc_test1
這樣,一個容器就啟動好了,接下來就是簡單的管理和操作了。如果想後臺執行使用-d 選項
另起一個終端檢視容器相關資訊
lxc-info -n lxc_test1
其他的管理操作可以檢視上面的常用命令
LXC的圖形介面
專案地址為
https://github.com/lxc-webpanel/LXC-Web-Panel
官網
http://lxc-webpanel.github.io/
安裝方法也很簡單
yum install git -y #專案在github上,可以利用git拉下來
yum install python-pip -y
pip install flask==0.9
git clone https://github.com/lxc-webpanel/LXC-Web-Panel.git
啟動
cd LXC-Web-Panel/
python lwp.py
然後可以訪問本機的5000埠
這裡的使用者名稱密碼預設admin/admin
接下來就正常管理了