成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux 容器的建立和簡單管理

系統 Linux
LXC 中文名稱就是 Linux 容器工具,容器可以提供輕量級的虛擬化,以便隔離進程和資源。本文將循序漸進地介紹 Linux 容器的建立和管理方法。本文使用的 Linux 發行版本是 Ubuntu 12.04 。

cgroups 簡介

LXC 項目由一個 Linux 內核補丁和一些用戶空間(userspace) 工具組成。這些工具使用由補丁增加的內核新特性,提供一套簡化的工具來維護容器。2.6.29 版本后的 Linux 內核版本已經包含該補丁提供的大部分功能。所以強烈建議使用***的內核源代碼。LXC 在資源管理方面依賴 Linux 內核的 cgroups (Control Groups) 系統,cgroups 系統是 Linux 內核提供的一個基于進程組的資源管理的框架,可以為特定的進程組限定可以使用的資源。它最初由 Google 的工程師提出,后來被整合進 Linux 內核。cgroups 也是 LXC 為實現虛擬化所使用的資源管理手段,可以說沒有 cgroups 就沒有 LXC。cgroups 文件系統結構見圖 1 。

圖 1.cgroups 文件系統結構

相關名詞解釋

控制族群(control group):控制族群就是一組按照某種標準劃分的進程。cgroups 中的資源控制都是以控制族群為單位實現。一個進程可以加入到一個控制族群,也可以遷移到另一個控制族群。

層級(hierarchy)。控制族群可以組織成 hierarchical 的形式,既一顆控制族群樹。控制族群樹上的子節點控制族群是父節點控制族群的孩子,繼承父控制族群的特定的屬性。

子系統(subsytem)。一個子系統就是一個資源控制器,比如中央處理器子系統就是控制中央處理器時間分配的一個控制器。子系統必須附加(attach)到一個層級上才能起作用,一個子系統附加到某個層級以后,這個層級上的所有控制族群都受到這個子系統的控制。主要包括如下 9 個子系統:

  • blkio : 這個子系統為塊設備設定輸入/輸出限制,比如物理設備(磁盤,固態硬盤,USB 等)。
  • cpu : 這個子系統使用調度程序提供對 中央處理器的 cgroup 任務訪問。
  • cpuacct : 這個子系統自動生成 cgroup 中任務所使用的中央處理器報告。
  • cpuset : 這個子系統為 cgroup 中的任務分配獨立中央處理器(在多核系統)和內存節點。
  • devices : 這個子系統可允許或者拒絕 cgroup 中的任務訪問設備。
  • freezer : 這個子系統掛起或者恢復 cgroup 中的任務。
  • memory : 這個子系統設定 cgroup 中任務使用的內存限制,并自動生成由那些任務使用的內存資源報告。
  • net_cls : 這個子系統使用等級識別符(classid)標記網絡數據包,可允許 Linux 流量控制程序(tc)識別從具體 cgroup 中生成的數據包。
  • ns :ns 子系統提供了一個將進程分組到不同名稱空間的方法。在具體名稱空間中,進程可彼此互動,但會與在其它名稱空間中運行的進程隔絕。這些分開的名稱空間在用于操作系統級別的虛擬化時,有時也稱之為容器。

搭建***個 LXC 虛擬計算機

本文使用的 Linux 發行版是 Ubuntu 12.10 ,首先安裝軟件包:

  1. #apt-get install lxc 

安裝軟件包后要檢查 Linux 發行版的內核對 LXC 的支持情況,可以使用下面命令 lxc-checkconfig 查看,見圖 2 。

圖 2.lxc-checkconfig 命令

lxc-checkconfig 命令檢查之后如果所有項目顯示“enabled”表示可以直接使用 LXC。#p#

建立一個 Ubuntu Server LXC 虛擬計算機系統

使用如下命令構建(執行過程見圖)3:

  1. #lxc-create  -t  ubuntu -n cjhlxc1 

說明這里使用的是 ubuntu 模板,模板文件保存在/usr/lib/lxc/templates/目錄下,這個目錄下還有其他模板,可以使用如下命令查看,命令輸出如下:

  1. # tree /usr/lib/lxc/templates/ 
  2. /usr/lib/lxc/templates/ 
  3. ├── lxc-busybox 
  4. ├── lxc-debian 
  5. ├── lxc-fedora 
  6. ├── lxc-opensuse 
  7. ├── lxc-sshd 
  8. ├── lxc-ubuntu 
  9. └── lxc-ubuntu-cloud 

圖 3.建立一個 Ubuntu Server LXC 系統

 

說明:安裝過程要持續一段時間,另外安裝過程要保證互聯網連接。

上面命令完成后, 會在 /var/lib/lxc 目錄中, 產生虛擬計算機 cjhlxc1 ,它的目錄結構見圖 4 。

圖 4.虛擬計算機 cjhlxc1 目錄結構

LXC 虛擬計算機的基本管理——了解 LXC 虛擬計算機的管理命令

LXC 常見命令說明見表 1:

表 1 LXC 常見命令說明

說明:更加詳細的 lxc 命令列表和使用方法請讀者參考官方網站文檔

圖 5 是主要 LXC 命令執行過程的示意圖

圖 5.LXC 命令執行過程的示意圖

#p#

LXC 常見命令說明舉例

啟動 LXC 虛擬計算機

  1. # lxc-start  -n  cjhlxc1 

確實的賬號和密碼都是 ubuntu 然后登錄虛擬計算機見圖 6:

圖 6.登錄虛擬計算機

列出當前系統所有的容器

檢查目前有哪幾個容器啟動(若沒有任何結果,則目前都沒有容器啟動):

  1. # lxc-ls 
  2. cjhlxc1 foo 

使用 console 登入容器第 3 個控制臺:

  1. $ lxc-console -n cjhlxc1 –t 3 

說明:如果沒有指定 -t N 選項,則一個沒有被使用的控制臺將自動選擇。要退出控制臺,使用快捷鍵 Ctrl-a q 。

停止運行一個容器:

  1. # lxc-stop -n cjhlxc1 

獲取一個容器的狀態:

  1. # lxc-info -n ol6ctr1 

把一個容器銷毀:

  1. # lxc-destroy -n cjhlxc11 

復制一個容器:

  1. # lxc-clone -o cjhlxc1 -n ol6ctr2 

暫停或恢復一個容器:

  1. # lxc-freeze -n cjhlxc1 
  2. # lxc-unfreeze -n cjhlxc1 

LXC 虛擬網絡接口設置

了解 LXC 內置的網絡架構

不管是哪套虛擬系統,只要是運作在 Linux 系統架構之內,所使用的虛擬網絡都是 Linux 系統缺省的虛擬網絡架構(即 TAP/TUP, Bridge)圖 7 是示意圖 。

圖 7.LXC 虛擬網絡接口示意圖

圖 7 這個結構中兩個容器使用 Veth Bridge,因為默認情況下,LXC 的模板腳本設置網絡都是基于 Veth Bridge。在這種模式下,容器從 dnsmasq 服務器獲取其 IP 地址。主機允許的容器連接到網絡的其余部分(使用 iptables 的 NAT 規則 ,但這些規則不允許傳入的連接到容器)。

除了 Veth Bridge 外,LXC 虛擬計算機還支持 Macvlan Bridge 和 Macvlan VEPA。有時我們可能需要一塊物理網卡綁定多個 IP 以及多個 MAC 地址,雖然綁定多個 IP 很容易,但是這些 IP 會共享物理網卡的 MAC 地址,可能無法滿足我們的設計需求,所以有了 MACVLAN 設備,其工作

MACVLAN 會根據收到包的目的 MAC 地址判斷這個包需要交給哪個虛擬網卡。限于篇幅這里介紹 Macvlan Bridge 和 Macvlan VEPA,感興趣的用戶可以參考參考文獻中的介紹。

與 KVM 相同 LXC 安裝完成,缺省就會產生一個網絡接口(包含以下功能:交換機(Switch Hub) + DHCP 服務器 + NAT + Cache DNS 服務器),網絡接口名稱也就是 lxcbr0,可以通過如下命令驗證:

  1. # brctl show 
  2. bridge name bridge id    STP enabled    interfaces 
  3. lxcbr0   8000.3eef2e882ac9  no   vetheCYpw4 

由上面的命令輸出圖就可以明顯看到 lxcbr0 的相關信息,而這個網絡接口,除了扮演交換機的功能之外,缺省也提供了 NAT 與 DHCP 的功能,簡單來說就是 lxcbr0 除了提供交換機的功能之外,也提供了 DHCP 服務與 DNS 緩存服務 , 再通過 iptables 啟動 NAT 的功能,由以下命令可以來證明,命令輸出如下:

  1. # iptables -t nat -L -n 
  2. Chain PREROUTING (policy ACCEPT) 
  3. target     prot opt source               destination 
  4. Chain INPUT (policy ACCEPT) 
  5. target     prot opt source               destination 
  6. Chain OUTPUT (policy ACCEPT) 
  7. target     prot opt source               destination 
  8. Chain POSTROUTING (policy ACCEPT) 
  9. target     prot opt source               destination 
  10. MASQUERADE  all  --  10.0.3.0/24         !10.0.3.0/24 

DHCP 服務與 DNS 緩存服務的功能,可以通過如下命令驗證:

  1. #ps aux | grep lxc 

命令輸出見圖 8:

圖 8.查看 DHCP 服務與 DNS 緩存服務

#p#

修改 LXC 網絡接口的方法

一般我們是通過修改 lxcbr0 的設置文件的方法來實現的。通過〝ifconfig lxcbr0〞的命令,可以得知 lxcbr0 本身的 IP 地址,而由〝ps aux | grep dnsmasq〞的命令,也可以清楚看到 DHCP Server 分配的 IP 范圍,因此可以知道 LXC 缺省虛擬網絡預設的 IP 區段為 10.0.3.0/24,那么,這些信息,可以修改嗎?當然可以,以上這些網絡信息,是 LXC 缺省預設的網絡設置,所以可以通過修改配置文件的方式,來修改相關信息,以符合實際應用的狀況,可以利用編輯器來修改 LXC 的網絡配置文件:

  1. # vi /etc/default/lxc 

清單 1./etc/default/lxc 文件內容:

  1. LXC_BRIDGE="lxcbr0" 
  2. LXC_ADDR="10.0.3.1" 
  3. LXC_NETMASK="255.255.255.0" 
  4. LXC_NETWORK="10.0.3.0/24" 
  5. LXC_DHCP_RANGE="10.0.3.2,10.0.3.254" 
  6. LXC_DHCP_MAX="253" 
  7. LXC_SHUTDOWN_TIMEOUT=120 

用戶修改后要重新啟動網絡服務,使用如下命令:

  1. #service lxc-net restart 

設置 LXC 使用物理網絡接口

相比 KVM 來說,LXC 可以直接使用物理網絡接口(比如在本文中物理網卡是 eth0、eth1,筆者準備把 eth0 分配給 LXC 虛擬網絡 )。首先使用“ ifconfig –a”命令查看一下,其中而 eth1 為實體計算機實際對外聯機所使用的網絡接口,所 eth0 ,就可以拿來設定給 LXC 虛擬計算機來使用。然后修改修改 LXC 虛擬計算機的配置文件:/var/lib/lxc/cjhlxc1/config。

  1. #vi /var/lib/lxc/cjhlxc1/config 

清單 2 /var/lib/lxc/cjhlxc1/config 文件內容:

  1. lxc.network.type=phys 
  2. lxc.network.link=eth0 
  3. lxc.network.flags=up 
  4. lxc.utsname = cjhlxc1 
  5. #lxc.network.hwaddr = 00:16:3e:f9:ad:be #此行要注釋掉# 
  6. lxclxc.devttydir = lxc 
  7. lxc.tty = 4 
  8. lxc.pts = 1024 
  9. lxc.rootfs = /var/lib/lxc/myt2/rootfs 
  10. lxc.mount  = /var/lib/lxc/myt2/fstab 
  11. lxc.arch = amd64 
  12. lxc.cap.drop = sys_module mac_admin 
  13. lxc.pivotdir = lxc_putold 

修改完成后存盤退出。簡單說明一下以上參數:

lxc.network.type 指定用于容器的網絡類型,包括四種類型:

  • empty:建立一個沒有使用的網絡接口
  • veth:容器將鏈接到 lxc.network.link 定義的網橋上,從而與外部通信。之前網橋必須在預先建立。
  • macvlan:一個 macvlan 的接口會鏈接到 lxc.network.link 上。
  • phys: lxc.network.link 指定的物理接口分配給容器。

lxc.network.flags 用于指定網絡的狀態,up 表示網絡處于可用狀態。

lxc.network.link 用于指定用于和容器接口通信的真實接口,比如一個網橋 br0 。

lxc.network.hwaddr 用于指定容器的網絡接口的 mac 地址。

下面修改主機網絡配置文件:

  1. #vim /etc/network/interface 

注意此時配置文件是空文件,沒有內容。通常可以設置為固定 IP 地址模式(見清單 3)或者通過 DHCP 服務器獲取 IP 地址模式(見清單 4)

清單 3.固定 IP 地址模式:

  1. auto lo 
  2. iface lo inet loopback 
  3. auto eth0 
  4. iface eth0 inet dhcp 
  5. dns-nameservers 10.0.0.4 

清單 4.通過 DHCP 服務器獲取 IP 地址模式:

  1. auto lo 
  2. iface lo inet loopback 
  3. auto eth0 
  4. iface eth0 inet static 
  5. address 10.0.0.3 
  6. netmask 255.255.255.0 
  7. dns-nameservers 10.0.0.4 

修改完成后存盤退出。然后重新啟動網絡服務:

  1. #/etc/init.d/networking restart 

下面啟動 LXC 虛擬計算機:

  1. # lxc-start  -n  cjhlxc1 

注意一旦 LXC 虛擬計算機啟動成功,在宿主計算機上使用〝ifconfig -a〞查看主機網絡接口,用戶會發現此時網絡接口 eth0 消失了,只有 eth1 。這是因為 eth0 已經讓 LXC 虛擬計算機給使用了。然后我們使用如下命令“ lxc-console -n cjhlxc1”登錄 LXC 虛擬計算機發現此時 LXC 虛擬計算機的網絡接口是 eth0。然后我們可以使用 ping 命令測試一下 LXC 虛擬計算機和互聯網是否聯通。

總結

LXC 中文名稱就是 Linux 容器工具,容器可以提供輕量級的虛擬化,以便隔離進程和資源,使用 LXC 的優點就是不需要安裝太多的軟件包,使用過程也不會占用太多的資源,本文循序漸進地介紹在 Linux 容器的建立和管理方法以及虛擬網絡接口的設置方法。

責任編輯:黃丹 來源: developerworks
相關推薦

2020-08-07 09:06:26

CaaS容器技術

2010-07-01 16:38:18

Linux TCP I

2009-03-18 09:45:32

教程管理用戶

2010-08-23 17:31:23

LinuxDHCP服務器

2015-08-04 10:26:44

OpenStackKubernetes容器管理

2010-05-14 16:41:58

MySQL鏡像數據庫

2011-03-02 15:47:37

PureftpdPureDBLinux

2010-08-04 11:18:45

Linux NFS

2010-06-10 14:49:56

MySQL鏡像數據庫

2016-09-01 13:39:33

Linux鏡像XML 解析器

2011-09-07 15:20:48

svnUbuntu

2017-11-28 09:21:53

LinuxWindowsDocker

2020-09-28 15:00:19

Linux容器虛擬化

2017-06-13 16:40:42

Azure容器Kubernetes

2023-09-15 10:15:43

Docker網絡

2010-06-04 14:31:59

Linux 查看進程

2010-05-24 15:57:05

Linux SNMP

2010-03-01 16:13:06

Linux磁盤管理命令

2017-03-02 11:25:43

云計算

2011-01-14 12:43:58

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级片在线免费看 | 欧美一级黄色片在线观看 | 亚洲精品第一 | 亚洲毛片在线观看 | 久草视频在线播放 | 九九伦理电影 | 日韩欧美精品在线播放 | 国产亚洲一区二区三区在线观看 | 91看片网 | 亚洲高清电影 | 日美女逼逼 | 亚洲精品视频一区 | 久久噜噜噜精品国产亚洲综合 | 国产欧美一区二区三区久久人妖 | 久久精品国产一区二区电影 | 狠狠干狠狠操 | 精品一区二区三区在线视频 | 在线观看国产视频 | 久久久久久久久综合 | 国产在线中文字幕 | 2018国产精品 | 欧美精品在线免费 | 日韩成人在线播放 | 欧美中国少妇xxx性高请视频 | 久久精品国产99国产精品亚洲 | 麻豆国产一区二区三区四区 | 亚洲精品v| 91婷婷韩国欧美一区二区 | 日韩一区二区免费视频 | 一级看片| 日韩国产欧美一区 | 在线视频国产一区 | 人人干人人干人人干 | 成人av在线播放 | 女朋友的闺蜜3韩国三级 | 亚洲精品一区中文字幕乱码 | 久久久久久久av | 久久久久亚洲 | 日韩在线不卡视频 | 在线视频国产一区 | 午夜成人在线视频 |