主頁 > 知識庫 > Linux Container(LXC容器)的基本命令使用簡介

Linux Container(LXC容器)的基本命令使用簡介

熱門標(biāo)簽:金華呼叫中心外呼系統(tǒng)廠家 襄陽地圖標(biāo)注店 小語股票電銷機(jī)器人 萊蕪移動(dòng)外呼系統(tǒng) 高德地圖標(biāo)注在電腦上 杭州電銷機(jī)器人有效果嗎 柯城手機(jī)地圖如何做地圖標(biāo)注 申請400電話流程好嗎 軟件電話機(jī)器人

lxc能做什么:
可以為容器綁定特定的cpu和memory,分配特定比例的cpu時(shí)間、IO時(shí)間,限制可以使用的內(nèi)存大?。ò▋?nèi)存和swap空間),提供device訪問控制,提供獨(dú)立的namespace(網(wǎng)絡(luò)、pid、ipc、mnt、uts)。
默認(rèn)的lxc配置是隔離pids(進(jìn)程) sysv ipc(進(jìn)程間通信),和掛載點(diǎn)。如果想運(yùn)行sshd,就必須提供一個(gè)新的網(wǎng)絡(luò)堆棧和hostname,如果想要避免文件沖突,需要重新掛載沖突文件到不同的地方。如果想要避免所有的沖突,你需要重新掛載一個(gè)文件系統(tǒng)。
lxc的實(shí)現(xiàn):
Sourceforge上有LXC這個(gè)開源項(xiàng)目,但是LXC項(xiàng)目本身只是一個(gè)為用戶提供一個(gè)用戶空間的工具集,用來使用和管理LXC容器。LXC真正的實(shí)現(xiàn)則是靠Linux內(nèi)核的相關(guān)特性,LXC項(xiàng)目只是對此做了整合。基于容器的虛擬化技術(shù)起源于所謂的資源容器和安全容器。
LXC在資源管理方面依賴與Linux內(nèi)核的cgroups子系統(tǒng),cgroups子系統(tǒng)是Linux內(nèi)核提供的一個(gè)基于進(jìn)程組的資源管理的框架,可以為特定的進(jìn)程組限定可以使用的資源。LXC在隔離控制方面依賴于Linux內(nèi)核的namespace特性,具體而言就是在clone時(shí)加入相應(yīng)的flag(NEWNS NEWPID等等)。
lxc常見命令使用:
lxc-version 用于顯示系統(tǒng)LXC的版本號(可以通過此命令判斷系統(tǒng)是否安裝了lxc)
用法:lxc-version
例如:

復(fù)制代碼
代碼如下:
lxc-version


 lxc-checkconfig 用于判斷l(xiāng)inux內(nèi)核是否支持LXC
用法:lxc-checkconfig
例如:

復(fù)制代碼
代碼如下:
lxc-checkconfig


lxc-create用于創(chuàng)建一個(gè)容器
用法:lxc-create -n name [-f config_file]
         -n 后面跟要?jiǎng)?chuàng)建的容器名字 例如:-n foo
         -f 后面跟容器配置文件的路徑
注:1.采用lxc-create創(chuàng)建的容器,在停止運(yùn)行后,不會被銷毀,要采用lxc-destroy命令才能銷毀
       2.容器命令空間是全局的,系統(tǒng)中不允許存在重名的容器,如果-n 后面跟一個(gè)已經(jīng)存在的容器名,創(chuàng)建會失敗
例如:

復(fù)制代碼
代碼如下:
lxc-create --n foo --f foo.conf


lxc-execute 用于在一個(gè)容器執(zhí)行應(yīng)用程序
用法: lxc-execute -n name [-f config_file] [ -s KEY=VAL ]command
           -n 后面跟容器名字(容器名字用于管理容器)例如:-n foo
           -f 后面跟容器配置文件的路徑(如果沒有配置文件,可以直接用-s指定配置選項(xiàng),如果什么都沒有,系統(tǒng)采用默認(rèn)策略)例如:-f foo.conf
           -s 后面跟配置鍵值對 例如:lxc.cgroup.cpu.shares=512
       command 為要執(zhí)行的命令 例如:/bin/bash
       這個(gè)命令會mount /proc 并且會自動(dòng)創(chuàng)建/銷毀容器。
 注:1.如果容器還不存在,lxc-execute會自動(dòng)創(chuàng)建一個(gè),容器停止運(yùn)行后會被自動(dòng)銷毀
        2.用lxc-execute啟動(dòng)應(yīng)用程序,配置優(yōu)先級如下:
          如果指定-f選項(xiàng),那么之前創(chuàng)建容器(如果容器是已存在的)的配置文件不會被使用
          如果指定-s選項(xiàng),則在命令行中的配置鍵值對會覆蓋配置文件(無論之前的還是-f指定的)相同配置
例如:

復(fù)制代碼
代碼如下:
lxc-execute --n foo --s lxc.cgroup.cpu.shares=512 /bin/bash

使用實(shí)際例子:
       
復(fù)制代碼
代碼如下:
lxc-execute -n test /bin/bash

        這個(gè)會啟動(dòng)一個(gè)lxc并給出類似的一個(gè)cmd窗口,網(wǎng)絡(luò)是與操作系統(tǒng)共用的,這里好像僅僅是創(chuàng)建了一個(gè)命名空間
        如果沒有指定-f,默認(rèn)的隔離將被使用,這個(gè)命令當(dāng)你需要一個(gè)快速在一個(gè)隔離的環(huán)境中運(yùn)行程序。在物理機(jī)上和container中都會運(yùn)行l(wèi)xc-init,在宿主機(jī)上面,這個(gè)程序用于轉(zhuǎn)發(fā)lxc-kill 信號到已經(jīng)啟動(dòng)的程序中 ,在container中,這個(gè)程序的pid為1,它會fork出要執(zhí)行的命令(pid為2)并執(zhí)行。
 
 lxc-start 用于在容器中執(zhí)行給定命令
用法:lxc-start  -n name [-f config_file] [-c console_file] [-d] [-s KEY=VAL]
          [command]
      -d 將容器當(dāng)做守護(hù)進(jìn)程執(zhí)行
     -f  后面跟配置文件
     -c 指定一個(gè)文件作為容器console的輸出,如果不指定,將輸出到終端
    -s 指定配置
    如果沒有指定命令,lxc-start 將要運(yùn)行 /sbin/init
例如:
復(fù)制代碼
代碼如下:
lxc-start -n foo -f foo.conf -d /bin/bash

注:1.如果容器還不存在,lxc-start會自動(dòng)創(chuàng)建一個(gè),容器停止運(yùn)行后會被自動(dòng)銷毀
       2.lxc-start配置優(yōu)先級與lxc-execute相同
       3.lxc-start 與lxc.execute的異同:
        lxc-start 和 lxc-execute都可以在容器中啟動(dòng)進(jìn)程,區(qū)別在于lxc-start直接創(chuàng)建進(jìn)程,lxc-execute先創(chuàng)建lxc-init進(jìn)程,然后在lxc-init中fork一個(gè)進(jìn)程來執(zhí)行。(關(guān)于第4點(diǎn),lxc-init所占的是一個(gè)什么樣的地位?)
       The orphan process group and daemon are not supported by this  command,
       use the lxc-execute command instead
       If no command is specified, lxc-start will use the default "/sbin/init"
        command to run a system container.
      4.lxc-start用于在容器啟動(dòng)system,lxc-execute用于在容器執(zhí)行應(yīng)用程序


 lxc-kill 發(fā)送信號給容器中的第一個(gè)用戶進(jìn)程(容器內(nèi)部進(jìn)程號為2的進(jìn)程)
用法:lxc-kil -n name SIGNUM
      -n 后面跟容器名
      SIGNUM  信號 (此參數(shù)可選,默認(rèn)SIGKILL)
例如:

復(fù)制代碼
代碼如下:
lxc-kill -n foo


lxc-stop 用于停止容器中所有的進(jìn)程
用法:lxc-stop -n name
       -n后面跟要停止的容器名
例如:

復(fù)制代碼
代碼如下:
lxc-stop --n foo


lxc-destroy 用于銷毀容器
用法:lxc-destroy -n name
       -n后面跟要停止的容器名
例如:

復(fù)制代碼
代碼如下:
lxc-destroy --n foo


lxc-cgroup 用于獲取或調(diào)整與cgroup相關(guān)的參數(shù)
用法:lxc-cgroup -n name subsystem value
        -n 后面跟要調(diào)整的容器名
例如:

復(fù)制代碼
代碼如下:
lxc-cgroup -n foo devices.list
lxc-cgroup -n foo cpuset.cpus "0,3"


lxc-info 用戶獲取一個(gè)容器的狀態(tài)
 用法:lxc-info -n name
       -n后面跟操作的容器名
例如:

復(fù)制代碼
代碼如下:
lxc-info --n foo

注:容器的狀態(tài)有:STARTING RUNNING STOPPING STOPPED ABORTING


lxc-monitor 監(jiān)控一個(gè)容器狀態(tài)的變換,當(dāng)一個(gè)容器的狀態(tài)變化時(shí),此命令會在屏幕上打印出容器的狀態(tài)
用法:lxc-monitor -n name
例如:

復(fù)制代碼
代碼如下:
lxc-monitor -n foo


 lxc-ls 列出當(dāng)前系統(tǒng)所有的容器
用法:lxc-ls
例如:

復(fù)制代碼
代碼如下:
lxc-ls


lxc-ps 列出特定容器中運(yùn)行的進(jìn)程
用法:lxc-ps
例如:

復(fù)制代碼
代碼如下:
lxc-ps -n foo

查看和調(diào)整容器的優(yōu)先級

復(fù)制代碼
代碼如下:
lxc-priority -n name
lxc-priority -n name -p priority

持續(xù)觀察容器的狀態(tài)和優(yōu)先級變化:

復(fù)制代碼
代碼如下:
lxc-monitor -n name

LXC 使用 cgroup 文件系統(tǒng)管理容器??梢酝ㄟ^ LXC 讀和操縱 cgroup 文件系統(tǒng)的一些部分。要管理每個(gè)容器對 cpu 的使用,則可以通過讀取和調(diào)整容器的 cpu.shares 來進(jìn)行:

復(fù)制代碼
代碼如下:
lxc-cgroup -n name cpu.shares
lxc-cgroup -n name cpu.shares howmany

暫停和恢復(fù)
[/code]lxc-freeze -n name
lxc-unfreeze -n name[/code]

停止
停止一個(gè)容器將導(dǎo)致該容器中啟動(dòng)的所有進(jìn)程全體死亡,并且清理容器:

復(fù)制代碼
代碼如下:
lxc-stop -n name

銷毀
銷毀容器是指刪除通過 lxc-create 步驟與名稱關(guān)聯(lián)的配置文件和元數(shù)據(jù):

復(fù)制代碼
代碼如下:
lxc-destroy -n name

標(biāo)簽:鶴壁 河南 威海 天門 黔南 景德鎮(zhèn) 海北 欽州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux Container(LXC容器)的基本命令使用簡介》,本文關(guān)鍵詞  Linux,Container,LXC,容器,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Linux Container(LXC容器)的基本命令使用簡介》相關(guān)的同類信息!
  • 本頁收集關(guān)于Linux Container(LXC容器)的基本命令使用簡介的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章