主頁(yè) > 知識(shí)庫(kù) > 在Ubuntu系統(tǒng)中使用LXC容器的教程

在Ubuntu系統(tǒng)中使用LXC容器的教程

熱門(mén)標(biāo)簽:2020電銷(xiāo)機(jī)器人排行 北京市地圖標(biāo)注 廳外呼梯系統(tǒng)布線 鹽城客服外呼系統(tǒng)軟件 鄭州營(yíng)銷(xiāo)外呼系統(tǒng)運(yùn)營(yíng)商 焦作人工智能電話機(jī)器人軟件 淘寶系統(tǒng)退貨外呼項(xiàng)目考試答案 貴陽(yáng)語(yǔ)音電銷(xiāo)機(jī)器人招商 百度地圖標(biāo)注陰影動(dòng)態(tài)

使用“容器”來(lái)保證主機(jī)環(huán)境的安全性,這個(gè)概念早在十年前就已經(jīng)存在(例如 FreeBSD 的 jail 虛擬化技術(shù)),但是直到最近,隨著部署云架構(gòu)需求越來(lái)越多,像 LXC 和 Docker 這種 Linux 下的容器才成為被關(guān)注的焦點(diǎn)。當(dāng)然,由于主流廠商(云服務(wù)商如亞馬遜主推 AWS,微軟主推 Azure;發(fā)行版如紅帽、Ubuntu等)組成的強(qiáng)大靠山,Docker 已經(jīng)被放在媒體的聚光燈下面,其實(shí),Docker 里面所謂的“容器”技術(shù)是由 LXC 提供的。

你只是一個(gè)普通的 Linux 用戶,那 Docker/LXC 能為你帶來(lái)什么好處呢?容器可以將你的應(yīng)用在不同的 Linux 發(fā)行版之間遷移。想像一下這個(gè)場(chǎng)景:你正在用的發(fā)行版是 Debian,你喜歡它的穩(wěn)定性,同時(shí)你又想玩一款最新的 Ubuntu 游戲,你不需要在電腦上裝雙系統(tǒng)然后重啟進(jìn)入 Ubuntu,也不需要在 Debian 上跑一個(gè)耗資源的 Ubuntu 虛擬機(jī),你只需要簡(jiǎn)單地生成一個(gè) Ubuntu 容器就夠了。

拋開(kāi) Docker 的好處不談,讓我們聊一下 LXC 容器的好處:我可以使用 libvirt 提供的接口來(lái)管理 LXC,這些接口和 Docker 沒(méi)有任何關(guān)系。如果你有使用基于 libvirt 庫(kù)的管理工具(例如 virt-manager 和 virsh),你就可以使用它們來(lái)管理 LXC 容器。

在這篇教程中,我只介紹標(biāo)準(zhǔn) LXC 容器管理工具的命令行操作,來(lái)教你如何在 Ubuntu 下創(chuàng)建和管理 LXC 容器。
Ubuntu 下安裝 LXC

使用下面的命令安裝 LXC 在用戶態(tài)的工具:

   

復(fù)制代碼
代碼如下:
$ sudo apt-get install lxc

然后檢查當(dāng)前內(nèi)核是否支持 LXC。如果所有結(jié)果都是“enable”,說(shuō)明內(nèi)核支持:

   

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

 

    安裝完 LXC 工具后,就能看到 LXC 自動(dòng)創(chuàng)建了一塊橋接網(wǎng)卡(lxcbr0,可以在 /etc/lxc/default.conf 中設(shè)置)。
    

    當(dāng)你創(chuàng)建了 LXC 容器后,它的網(wǎng)口會(huì)自動(dòng)鏈接到這個(gè)橋接網(wǎng)卡上,然后這個(gè)容器就能和外部世界通信了。
創(chuàng)建 LXC 容器

為了在指定環(huán)境下(比如 Debian Wheezy 64位)創(chuàng)建 LXC 容器,你需要一個(gè)相應(yīng)的 LXC 模板。幸運(yùn)的是 LXC 提供的工具集成了一整套現(xiàn)成的 LXC 模板,你可以在 /usr/share/lxc/templates 目錄下找到它們。

    

復(fù)制代碼
代碼如下:
$ ls /usr/share/lxc/templates

     

     一個(gè) LXC 模板實(shí)質(zhì)上就是一個(gè)腳本,用于創(chuàng)建指定環(huán)境下的容器。當(dāng)你創(chuàng)建 LXC 容器時(shí),你需要用到它們。

比如你要新建 Ubuntu 容器,使用下面的命令即可:

   

復(fù)制代碼
代碼如下:
$ sudo lxc-create -n container-name> -t ubuntu

    

    默認(rèn)情況下,這個(gè)命令會(huì)創(chuàng)建一個(gè)最小的 Ubuntu 環(huán)境,版本號(hào)與你的宿主機(jī)一致,我這邊是“活潑的蠑螈”(版本號(hào)是13.10),64位。

當(dāng)然你也可以創(chuàng)建任何你喜歡的版本,只要在命令里面加一個(gè)版本參數(shù)即可。舉個(gè)例子,創(chuàng)建 Ubuntu 14.10 的容器:

   

復(fù)制代碼
代碼如下:
$ sudo lxc-create -n container-name> -t ubuntu -- --release utopic

這個(gè)命令就會(huì)下載安裝指定環(huán)境下的軟件包,創(chuàng)建新容器。整個(gè)過(guò)程需要幾分鐘時(shí)間,與容器的類(lèi)型有關(guān),所以,你可能需要耐心等待。

下載安裝完所有軟件包后,LXC 容器鏡像就創(chuàng)建完成了,你可以看到默認(rèn)的登錄界面。容器被放到 /var/lib/lxc/容器名> 這個(gè)目錄下,容器的根文件系統(tǒng)放在 /var/lib/lxc/容器名>/rootfs 目錄下。

創(chuàng)建過(guò)程中下載的軟件包保存在 /var/cache/lxc 目錄下面,當(dāng)你想另外建一個(gè)一樣的容器時(shí),可以省去很多下載時(shí)間。

用下面的命令看看主機(jī)上所有的 LXC 容器:

   

復(fù)制代碼
代碼如下:
$ sudo lxc-ls --fancy /p> p> NAME STATE IPV4 IPV6 AUTOSTART
------------------------------------
test-lxc STOPPED - - NO

使用下面的命令啟動(dòng)容器。參數(shù)“-d”將容器作為后臺(tái)進(jìn)程打開(kāi)。如果沒(méi)有指定這個(gè)參數(shù),你可以在控制臺(tái)界面上直接把容器的運(yùn)行程序關(guān)閉(LCTT譯注:Ctrl+C組合鍵)。

   

復(fù)制代碼
代碼如下:
$ sudo lxc-start -n container-name> -d

打開(kāi)容器后,看看狀態(tài):

  

復(fù)制代碼
代碼如下:
$ sudo lxc-ls --fancy /p> p> NAME STATE IPV4 IPV6 AUTOSTART
-----------------------------------------
lxc RUNNING 10.0.3.55 - NO

容器狀態(tài)是“運(yùn)行中”,容器 IP 是10.0.3.55。

你也可以看到容器的網(wǎng)絡(luò)接口(比如我這里是 vethJ06SFL)自動(dòng)與 LXC 內(nèi)部網(wǎng)橋(lxcbr0)連上了:

  

復(fù)制代碼
代碼如下:
$ brctl show lxcbr0

  

    管理 LXC 容器

我們已經(jīng)學(xué)習(xí)了怎么創(chuàng)建和啟動(dòng) LXC 容器,現(xiàn)在來(lái)看看怎么玩一個(gè)正在運(yùn)行著的容器。

第一步:打開(kāi)容器控制臺(tái):

   

復(fù)制代碼
代碼如下:
$ sudo lxc-console -n container-name>

    

    使用“Crtl+a q”組合鍵退出控制臺(tái)。

停止、刪除容器:

   

復(fù)制代碼
代碼如下:
$ sudo lxc-stop -n container-name>
$ sudo lxc-destroy -n container-name>

復(fù)制容器,用下面的命令:

   

復(fù)制代碼
代碼如下:
$ sudo lxc-stop -n container-name>
$ sudo lxc-clone -o container-name> -n new-container-name>

常見(jiàn)問(wèn)題

這個(gè)小節(jié)主要介紹你們?cè)谑褂?LXC 過(guò)程中碰到過(guò)的問(wèn)題。

    創(chuàng)建 LXC 容器時(shí)遇到下面的錯(cuò)誤:

   

復(fù)制代碼
代碼如下:
$ sudo lxc-create -n test-lxc -t ubuntu/p> p> lxc-create: symbol lookup error: /usr/lib/x86_64-linux-gnu/liblxc.so.1: undefined symbol: cgmanager_get_pid_cgroup_abs_sync

錯(cuò)誤的原因是你運(yùn)行了最新的 LXC,但是它所依賴的 libcgmanager 版本較老,兩者不兼容。升級(jí)下 libcmanager 即可解決問(wèn)題:

  

復(fù)制代碼
代碼如下:
$ sudo apt-get install libcgmanager0

標(biāo)簽:周口 遼寧 六安 大興安嶺 大慶 樂(lè)山 青島 大理

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

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章