1. 程式人生 > >LXC簡單介紹與使用

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
在這裡插入圖片描述
接下來就正常管理了