歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> LXC:Linux 容器工具

LXC:Linux 容器工具

日期:2017/2/28 16:49:24   编辑:Linux教程

游覽和設置新的容器工具 Linux Containers

容器可以提供輕量級的虛擬化,以便隔離進程和資源,而且不需要提供指令解釋機制以及全虛擬化的其他復雜性。本文循序漸進地介紹容器工具 Linux? Containers(LXC)。作者在文中演示如何設置和使用它們。

容器有效地將由單個操作系統管理的資源劃分到孤立的組中,以更好地在孤立的組之間平衡有沖突的資源使用需求。與虛擬化相比,這樣既不需要指令級模擬,也不需要即時編譯。容器可以在核心 CPU 本地運行指令,而不需要任何專門的解釋機制。此外,也避免了准虛擬化(paravirtualization)和系統調用替換中的復雜性。

通過提供一種創建和進入容器的方式,操作系統讓應用程序就像在獨立的機器上運行一樣,但又能共享很多底層的資源。例如,可以有效地共享公共文件(比如 glibc)的頁緩存,因為所有容器都使用相同的內核,而且所有容器還常常共享相同的 libc 庫(取決於容器配置)。這種共享常常可以擴展到目錄中其他不需要寫入內容的文件。

容器在提供隔離的同時,還通過共享這些資源節省開銷,這意味著容器比真正的虛擬化的開銷要小得多。

容器技術早就出現。例如,Solaris Zones 和 BSD jails 就是非 Linux 操作系統上的容器。用於 Linux 的容器技術也有豐富的遺產,例如 Linux-Vserver、OpenVZ 和 FreeVPS。雖然這些技術都已經成熟,但是這些解決方案還沒有將它們的容器支持集成到主流 Linux 內核。(要了解更多關於這些技術的信息,請查看 參考資料 小節)。

相比之下,Linux Resource Containers 項目(見 參考資料)則通過為主流 Linux 內核作貢獻來實現容器。與此同時,這些貢獻可能對成熟的 Linux 容器解決方案有用處 — 為更成熟的容器項目提供公共後端。本文簡要介紹如何使用由 LXC 項目創建的工具。

為了充分利用本文,您應該熟悉使用命令行運行程序,例如 make、gcc 和 patch。此外,還應該熟悉 tarball(*.tar.gz 文件)的解壓。

獲取、構建和安裝 LXC

LXC 項目由一個 Linux 內核補丁和一些 userspace 工具組成。這些 userspace 工具使用由補丁增加的內核新特性,提供一套簡化的工具來維護容器。

在使用 LXC 之前,首先需要下載 Linux 內核源代碼,應用適當的 LXC 補丁,然後構建、安裝和啟動它。最後再下載、構建和安裝 LXC 工具。

我使用一個打了補丁的 Linux 2.6.27 內核(見 參考資料)。雖然 2.6.27 Linux 內核的 lxc 補丁可能不適用於您喜歡的發行版的內核源代碼,但是 2.6.27 以後的 Linux 版本可能已經包含該補丁提供的大部分功能。所以,強烈建議使用最新的補丁和主流內核源代碼。而且,除了下載內核源代碼並添加補丁外,還可以使用 git 獲取代碼:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/daveh/linux-2.6-lxc.git

在 kernelnewbies.org 可以找到關於如何為內核添加補丁,如何配置、構建安裝和啟動內核的指導說明(見 參考資料)。

LXC 需要一些特定的內核配置。為 LXC 適當配置內核的最容易的方式是使用 make menuconfig,然後選擇 Container support。取決於內核所支持的特性,這樣做會進一步選擇一組其他配置選項。

Copyright © Linux教程網 All Rights Reserved