雖然早在十多年前就引入了容器這個概念,用來安全地管理共享式主機託管環境(比如FreeBSD監獄),但LXC或Docker之類的Linux只是最近因日益需要為雲計算部署應用程式而進入主流。雖然這陣子Docker備受媒體的關注,並且得到了各大雲服務提供商(比如亞馬遜AWS和微軟Azure)以及發行版提供商(比如紅帽和Ubuntu)的大力支持,但LXC實際上卻是針對Linux平台開發的早期容器技術之一。
如果你是普普通通的Linux用戶,Docker/LXC可以帶來什麼樣的好處呢?嗯,容器實際上是一種在諸發行版之間幾乎即時切換的一種好方法。假設你當前的桌面系統是Debian,你需要Debian的穩定性。與此同時,你又想玩最新的Ubuntu遊戲。然後,用不著很麻煩地通過雙啟動進入到Ubuntu分區,或者啟動占用大量資源的Ubuntu虛擬機,只要立即啟用一個Ubuntu容器即可,一切都搞定了。
即便沒有Docker的種種好處,我喜歡LXC容器的地方在於,LXC可以由libvirt接口來管理,Docker卻不是這樣。如果你之前一直使用基於libvirt的管理工具(比如virt-manager或virsh),就可以使用同樣那些工具來管理LXC容器。
我在本教程中著重介紹標準LXC容器工具的命令行用法,並且演示如何在Ubuntu上從命令行創建及管理LXC容器。
將LXC安裝到Ubuntu上
想在Ubuntu上使用LXC,就要安裝LXC用戶空間工具,如下所示。
$ sudo apt-get install lxc
安裝完畢之後,運行lxc-checkconifg工具,檢查當前Linux內核支持LXC的情況。要是一切都已被啟用,內核對LXC的支持已準備就緒。
$ lxc-checkconfig
![]()
安裝LXC工具後,你會發現,LXC的默認網橋接口(lxcbr0)已自動創建(已在/etc/lxc/default.conf中加以配置)。
![]()
創建LXC容器後,窗口的接口就會自動連接到該網橋,那樣容器就能與外界進行聯繫了。
創建LXC容器
為了能夠創建某個特定目標環境(比如Debian Wheezy 64位)的LXC容器,你就需要一個相應的LXC模板。幸運的是,Ubuntu上的LXC用戶空間工具隨帶一系列預先準備好的LXC模板。你可以在/usr/share/lxc/templates目錄下找到可用的LXC模板。
$ ls /usr/share/lxc/templates
![]()
LXC模板其實就是一段腳本而已,用來為某個特定的Linux環境創建容器。你在創建LXC容器時,需要用到這其中一個模板。
比如說,為了創建Ubuntu容器,使用下面這個命令行:
$ sudo lxc-create -n-t ubuntu
![]()
默認情況下,它會創建與本地主機同一版本號和同一架構的最小Ubuntu安裝系統,這種情況下是Saucy Salamander(13.10)64位。
如果你希望,可以創建任何一種版本的Ubuntu容器,只要傳遞release參數。比如說,想創建Ubuntu 14.10容器:
$ sudo lxc-create -n-t ubuntu -- --release utopic
它會下載並驗證目標容器環境需要的所有程序包。整個過程可能需要幾分鐘或更長時間,具體取決於容器類型。所以請耐心點。
![]()
經過一系列的程序包下載和驗證後,LXC容器映像最終創建完畢,你會看到默認的登錄資料可供使用。容器存儲在/var/lib/lxc/<container-name>,根文件系統則位於/var/lib/lxc/<container-name>/rootfs。
LXC創建過程中下載的所有程序包則緩存在/var/cache/lxc裡面,那樣使用同樣的LXC模板創建額外的容器就不用花時間了。
現在不妨看一下主機上的LXC容器列表:
$ sudo lxc-ls –fancy
NAME STATE IPV4 IPV6 AUTOSTART
------------------------------------
test-lxc STOPPED - - NO
想啟動一個容器,請使用下面這個命令。「-d」選項將容器作為守護程序來啟動。要是沒有這個選項,你在啟動容器後,會直接被連接到控制台。
$ sudo lxc-start -n-d
啟動容器後,不妨再次檢查容器狀態:
$ sudo lxc-ls –fancy
NAME STATE IPV4 IPV6 AUTOSTART
-----------------------------------------
lxc RUNNING 10.0.3.55 - NO
你會看到,容器處於「RUNNING」(運行)狀態,已被賦予了一個IP位址。
你還可以證實,容器的接口(比如vethJ06SFL)自動連接到LXC的內部網橋(lxcbr0),如下所示。
$ brctl show lxcbr0
![]()
管理LXC容器
既然我們已知道了如何創建及啟動LXC容器,現在不妨看看我們可以如何處理運行中的容器。
首先,我們想要訪問容器的控制台。為此,鍵入這個命令:
$ sudo lxc-console -n
![]()
鍵入<Ctrl+a q>組合鍵,退出控制台。
想停止和銷毀容器:
$ sudo lxc-stop -n$ sudo lxc-destroy -n
想把現有容器克隆成另一個容器,使用這些命令:
$ sudo lxc-stop -n$ sudo lxc-clone -o-n
故障排查
如果你遇到了LXC方面的錯誤,下面是故障排查方面的幾個要點。
1. 你無法創建LXC容器,出現下列錯誤。
$ sudo lxc-create -n test-lxc -t ubuntulxc-create: symbol lookup error: /usr/lib/x86_64-linux-gnu/liblxc.so.1: undefined symbol: cgmanager_get_pid_cgroup_abs_sync
這意味著你運行最新的LXC,卻使用較舊的libcgmanager(libcg管理器)。想解決這個問題,你就需要更新libcg管理器。
$ sudo apt-get install libcgmanager0
本文內容整理自網絡, 文中所有觀點看法不代表淘大白的立場
很多時候,我們需要在Windows的任務管理器中查看是否有奇怪的進程.有沒有病毒,木馬之類的,當然為了測試有時候需要添加一些偽進程. 工具/原料 偽裝的軟體,最好是筆記本或者notepad++之類的小程序 Windows電腦 方法/步驟 我這裡就用notepad++來演示一下,這個文字編寫還是很受大 ...
windows
在蘋果的Macbook上,如何才能高效地管理視頻呢?一下有幾個好辦法 工具/原料 Macbook系列筆記本電腦 視頻數個 方法 最簡單的方法,創建文件夾,把視頻分類,存進專門的文件夾,文件夾內還能再分文件夾.這會讓你的視頻更加有序. 重命名.重命名不只是視頻的名字,最好把日期也放上去.如果可以,加上 ...
如今計算機行業正是熱門的時候,很多人都想進入這個行業,接下來我就帶領大家創建人生中的第一個程序. 工具/原料 一台筆記本 vs2010 方法/步驟 首先點擊圖標打開vs2010 其次點擊圖中紅框位置,創建項目 然後會彈出一個頁面,如圖,在紅框的位置輸入項目的名稱,然後點擊右下方的確認鍵. 在彈出的頁 ...
備份 Android 系統上的應用數據.文本信息等等是非常乏味的,有時還很昂貴.電子市場的許多應用都承諾可以備份數據,但效果不佳或者需要付昂貴費用.你是否知道有一種更好的方法可以來做這件事,並且在你的電腦上就可以完成? Android 自帶一套開發工具.有許多種開發工具,但人們最為感興趣的項目是 ...
android
Windows 7系統默認在桌面上沒有顯示Internet Explorer圖標,但我們可以創建一個Internet Explorer快捷方式圖標,很多人認為有個快捷方式箭頭在上面不美觀.今天系統吧小編教大家一種方法,創建一個仿真度99.99%的Internet Explorer圖標. 1.在桌面空 ...
win7
QQ聊天很簡單,你知道如何創建討論組嗎?今天我們來一起學習一下. 工具/原料 電腦 帳號 方法/步驟 打開你的QQ,找到圖示的位置,點擊進入群. 進入之後,我們點擊"創建". 在"創建"的下拉菜單中選擇"創建討論組". 在彈出的" ...
多人談話當然得選qq群或者qq討論組了,可是有一些qq新人還不知道該怎樣創一個自己的群呢?那就跟小編我來看看該怎樣才能創吧! 工具/原料 一台電腦 一個QQ 方法/步驟 按qq上面第四個圖像. 按右邊的創建 選擇自己群類別 填寫群資料 填寫完後,加你的群成員 注意事項 恭喜你有個自己的群了.
Pantheon是Elementary OS的默認桌面環境,大家一定都很喜歡吧,下面將告訴大家如何在Ubuntu和Linux Mint上安裝Elementary OS Pantheon桌面環境. 使用PPA安裝: sudo add-apt-repository -y ppa:elementary-o ...
ubuntu
隨著qq已經變成人們日常交流的重要媒介,我們也加入了很多的群,比如親友群.同學群.學習群等等.這些群的群存在極大的方便了大家相互之間的交流,也因此節約了很多的時間.你是否也想建一個屬於自己的群,做群主呢?下面小編教你如何建群. 工具/原料 電腦 qq 方法/步驟 建群的條件 如果你的qq等級已經在1 ...
喜歡YY的朋友都知道YY 群,能夠跟自己志同道合的朋友在一起交流,今天我們就講一下怎麼建立一個自己的群 方法/步驟 下載YY 程序,安裝並註冊帳號,之後登錄自己的YY,這個很簡單,百度一下馬上搞定 輸入自己剛剛註冊的帳號密碼,登錄以後進人主菜單 在主菜單找到群圖標點擊進入,在下拉菜單空白處滑鼠右鍵點 ...
網際網路
windows上正常無法創建文件名以"."開頭的文件,本文江介紹幾種可以創建這種文件的方式. 工具/原料 windows 方法/步驟 在windows平台上,右鍵選擇"新建"->"文本文檔",給取名".properties& ...
windows
在github上如何註冊一個倉庫,github可以說是程序猿的臉書啊. 工具/原料 連網的筆記本 github上有帳號 方法/步驟 要在github上創建自己的代碼倉庫,首先的有一個github的帳號,帳號的申請就不演示了, 大家自己申請一個即可,登錄以後是這樣的界面. 在這個界面上,我標記的紅框裡 ...
Ubuntu是一個以桌面應用為主的GNU/Linux作業系統,其名稱來自非洲南部祖魯語或科薩語的"ubuntu"一詞(譯為烏班圖),意思是"人性"."我的存在是因為大家的存在", 是非洲傳統的一種價值觀,類似華人社會的"仁愛&qu ...
最近發現在YY頻道上可以錄音.講課.群聊天,功能很強大.而且音質是非常的不錯,所以要分享給大家如何建立YY頻道. 工具/原料 一台有網絡的電腦 方法/步驟 如何在YY上創建頻道1:點擊桌面的YY,進入YY登陸頁面如圖所示 如何在YY上創建頻道2:輸入帳號和密碼,然後點擊"登陸"如 ...
QQ討論組類似於QQ群,在學校.工作中,討論組的作用很重要,例如一項工作需要就個人協作,這時候用討論組來協商比較合適,這裡給大家演示一下如何創建QQ討論組. 工具/原料 電腦一台 QQ帳號一個 方法/步驟 打開電腦,雙擊QQ應用程式,登錄QQ進去QQ主界面. 登錄QQ主界面後,點擊QQ群組圖標,進入 ...
QQ技巧
java開發使用的集成環境中,eclipse居多,使用eclipse開發工具創建web工程,可以很方便的對web工程進行開發和測試.創建web工程需要注意一些事項,如果設置不合適,可能不能正常運行.小編介紹下如何在eclipse上創建一個web工程 工具/原料 eclipse工具 電腦 方法/步驟 ...
Windows 7系統默認在桌面上沒有顯示Internet Explorer圖標,但我們可以創建一個Internet Explorer快捷方式圖標,很多人認為有個快捷方式箭頭在上面不美觀.今天系統吧小編教大家一種方法,創建一個仿真度99.99%的Internet Explorer圖標. 1.在桌面空 ...
win7
下面介紹如何在loadrunner上創建Com/DCom虛擬用戶腳本的具體操作方法. 工具/原料 loadrunner12 方法/步驟 打開loadrunner 點擊[File]菜單,再選擇[NewScript and Solution] 左側的VuGen下,選擇[Single Protocol], ...
SSH 是為建立在應用層基礎上的安全協議.SSH 是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議.利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題.如果沒有開啟ssh無法進行遠程連接終端. 工具/原料 Ubuntu作業系統(我的是ubuntu 16.04.3 LTS) 方法/ ...
為了讓自己的計算機在硬體上得到最新的圖形和視頻驅動程序,為了保證一直使用最新的增強與優化功能,並能夠安裝到Intel Graphics Stack中,保證在Intel圖形的硬體下享受最佳的體驗效果. 工具/原料 計算機 虛擬機 方法/步驟 首先下載安裝Linux Graphics安裝器,一般是找最新 ...