https://blog.csdn.net/L835311324/article/details/84488470
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
- 1
- 2
第二步:添加網橋
下面幾步最好同時執行,否則如果你在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 #設置默認網關
- 1
- 2
- 3
- 4
- 5
第三步:檢查系統是否滿足容器使用要求
lxc-checkconfig
- 1
沒有什么錯誤,表示沒問題
第四步:創建LXC容器
創建LXC容器要基於模版,這里使用/usr/share/lxc/templates/lxc-centos這個模版,這個模版其實就是一個腳本,定義了這個容器需要的文件,環境,然后去指定的鏡像源安裝。這個其實也是LXC容器一個缺點,顯得太過笨重臃腫了。
lxc-create --name=lxc_test1 -t /usr/share/lxc/templates/lxc-centos
- 1
安裝完成之后
這個是說,root密碼存放的位置在/var/lib/lxc/lxc_test1/tmp_root_pass中,如果你想自己修改root密碼可以使用chroot /var/lib/lxc/lxc_test1/rootfs passwd這個命令
這里我們自己修改一下密碼為123456
第五步:啟動容器
啟動容器
lxc-start -n lxc_test1
- 1
這樣,一個容器就啟動好了,接下來就是簡單的管理和操作了。如果想后台運行使用-d 選項
另起一個終端查看容器相關信息
lxc-info -n lxc_test1
- 1
其他的管理操作可以查看上面的常用命令
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
- 1
- 2
- 3
- 4
啟動
cd LXC-Web-Panel/
python lwp.py
- 1
- 2
然后可以訪問本機的5000端口
這里的用戶名密碼默認admin/admin
接下來就正常管理了