服务器
    作者:鲁畅

    容器技能get!Ubuntu中LXC的搭建、管理

         [ 中关村在线 原创 ] 暂无评论
    返回分页阅读

    本文导航:

    1LXC简介与安装

      LXC是Linux containers的简称,是一种基于容器的操作系统层级的虚拟化技术。LXC可以在操作系统层次上为进程提供的虚拟的执行环境即容器。与传统的硬件抽象层次的虚拟化技术相比有以下优势:减少虚拟化的开销;快速部署。

    技能学习;乌班图中Linux容器的管理

      简言之,LXC是一款轻量级的虚拟化技术,方便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。但这并不意味着,传统的虚拟化技术将会被取代。这里将会为大家介绍如何安装、配置、管理Linux容器。

      安装LXC

      这里的系统环境为Ubuntu 14.10。(图片来自:linoxide.com)

      首先要安装LXC,可执行如下命令(如若为基于红帽的centos等系统,请使用yum命令)。

      sudo apt-get install lxc

      创建LXC

      通过 lxc-create命令创建一个容器。

      sudo lxc-create -t  <template> -n <container-name>

      即

      sudo lxc-create -t ubuntu -n Ubuntu1

      然后等待ubuntu运行,需要要花费几分钟。

    技能学习;乌班图中Linux容器的管理

    技能学习;乌班图中Linux容器的管理

      现在我们就已经有了一个ubuntu的容器。

      我们来看一下现在已经拥有的容器列表。

      sudo lxc-ls

      poornima@poornima-Lenovo:~\$ sudo lxc-ls

      [sudo] password for poornima:

      Ubuntu1


    2查看容器使用详情

      查看容器使用详情。

      sudolxc-info -n <container-name>

      poornima@poornima-Lenovo:~\$ sudo lxc-info -n Ubuntu1

      Name: Ubuntu1

      State: STOPPED

      可见容器的目前状态时尚未启动,我们可以启动容器。

      lxc-start -n <container-name>

      或者

      lxc-start -d -n <container-name>  to start the container in the background.

      确认容器是否启动

      poornima@poornima-Lenovo:~\$ sudo lxc-info -n Ubuntu1

      Name: Ubuntu1

      State: RUNNING

      PID: 2969

      IP: 10.0.3.150

      CPU use: 1.27 seconds

      BlkIO use: 20.66 MiB

      Memory use: 26.27 MiB

      KMem use: 0 bytes

      Link: vethVFLSOP

      TX bytes: 1.80 KiB

      RX bytes: 4.94 KiB

      Total bytes: 6.74 KiB

      由于要登录容器,所以我们需要一个LXC控制台

      lxc-console -n <container-name>

      poornima@poornima-Lenovo:~\$ sudo lxc-console -n Ubuntu1

      Connected to tty 1                  Type <Ctrl+a q> to exit the console, <ctrl+a ctrl+a=""> to enter Ctrl+a itself

      Ubuntu 14.10 Ubuntu1 tty1

      Ubuntu1 login: ubuntu

      Password:

      Last login: Thu Aug 27 12:05:59 IST 2015 on lxc/tty1

      Welcome to Ubuntu 14.10 (GNU/Linux 3.16.0-23-generic i686)

      * Documentation: https://help.ubuntu.com/

      ubuntu@Ubuntu1:~\$

      如果你需要通知容器运行的时候,可以输入命令。

      xc-stop -n <container-name>

      poornima@poornima-Lenovo:~\$ sudo lxc-stop -n Ubuntu1

      poornima@poornima-Lenovo:~\$ sudo lxc-info -n Ubuntu1

      Name: Ubuntu1

      State: STOPPED

      暂停freeze、恢复unfreeze容器命令

      lxc-freeze -n <container-name>

      poornima@poornima-Lenovo:~\$ sudo lxc-freeze -n Ubuntu1

      poornima@poornima-Lenovo:~\$ sudo lxc-info -n Ubuntu1

      Name: Ubuntu1

      State: FROZEN

      PID: 2969

      IP: 10.0.3.150

      CPU use: 1.48 seconds

      BlkIO use: 21.42 MiB

      Memory use: 26.96 MiB

      KMem use: 0 bytes

      Link: vethVFLSOP

      TX bytes: 2.63 KiB

      RX bytes: 5.80 KiB

      Total bytes: 8.43 KiB

      lxc-unfreeze -n <container-name>

    3拷贝、关闭容器方法

      拷贝容器

      lxc-clone -o <existing container> -n <new container>

      poornima@poornima-Lenovo:~\$ sudo lxc-clone -o Ubuntu1 -n Ubuntu-clone

      Created container Ubuntu-clone as copy of Ubuntu1

      poornima@poornima-Lenovo:~\$ sudo lxc-ls

      Ubuntu-clone Ubuntu1

      关闭容器

      ubuntu@Ubuntu1:~\$ sudo poweroff

      [sudo] password for ubuntu:

      Broadcast message from ubuntu@Ubuntu1

      (/dev/lxc/tty1) at 12:17 ...

      The system is going down for power off NOW!

      查看容器状态

      poornima@poornima-Lenovo:~\$ sudo lxc-info -n Ubuntu1

      Name: Ubuntu1

      State: STOPPED

      快照(snapshot)的创建和恢复

      lxc-snapshot  -n <container-name>

      poornima@poornima-Lenovo:~\$ sudo lxc-snapshot -n Ubuntu1

      lxc_container: lxccontainer.c: lxcapi_snapshot: 2953 Snapshot of directory-backed container requested.

      lxc_container: lxccontainer.c: lxcapi_snapshot: 2954 Making a copy-clone. If you do want snapshots, then

      lxc_container: lxccontainer.c: lxcapi_snapshot: 2955 please create an aufs or overlayfs clone first, snapshot that

      lxc_container: lxccontainer.c: lxcapi_snapshot: 2956 and keep the original container pristine.

      这些快照将被存储在 /var/lib/lxc目录下。

      poornima@poornima-Lenovo:~\$ sudo lxc-snapshot --name Ubuntu1 --list

      snap0 (/var/lib/lxc/Ubuntu1/snaps) 2015:08:27 12:20:41

      配置

      所有已创建的容器默认存储在/var/lib/lxc目录下。

      删除

      你可以删除容器。如果你已经创建了快照,那么也需要将快照一同删除。

      lxc-destroy -n <container-name>

      poornima@poornima-Lenovo:~\$ sudo lxc-destroy --name=Ubuntu-clone

      poornima@poornima-Lenovo:~\$ sudo lxc-info --name=Ubuntu-clone

      Ubuntu-clone doesn't exist

      运用web控制器管理容器

      如果你并不习惯使用Linux命令,那么你可以选择用浏览器模式的控制器来控制自己的Linux容器。

      安装相应的控制面板

      wget http://lxc-webpanel.github.io/tools/install.sh -O - | bash

      root@poornima-Lenovo:/home/poornima# wget http://lxc-webpanel.github.io/tools/install.sh -O - | bash

      --2015-08-27 13:15:13-- http://lxc-webpanel.github.io/tools/install.sh

      Resolving lxc-webpanel.github.io (lxc-webpanel.github.io)... 103.245.222.133

      Connecting to lxc-webpanel.github.io (lxc-webpanel.github.io)|103.245.222.133|:80... connected.

      HTTP request sent, awaiting response... 200 OK

      Length: 2678 (2.6K) [application/x-sh]

      Saving to: STDOUT

    4Web端管理Linux容器

    技能学习;乌班图中Linux容器的管理

      Installing requirement...

      100%[======================================>] 2,678 --.-K/s in 0.003s

      2015-08-27 13:15:14 (867 KB/s) - written to stdout [2678/2678]

      Cloning LXC Web Panel...

      Cloning into '/srv/lwp'...

      remote: Counting objects: 188, done.

      remote: Total 188 (delta 0), reused 0 (delta 0), pack-reused 188

      Receiving objects: 100% (188/188), 172.76 KiB | 49.00 KiB/s, done.

      Resolving deltas: 100% (79/79), done.

      Checking connectivity... done.

      Installation complete!

      Adding /etc/init.d/lwp...

      Done

      Starting server...done.

      Connect you on http://your-ip-address:5000/

      默认的用户名和密码为:admin/admin

    技能学习;乌班图中Linux容器的管理

    技能学习;乌班图中Linux容器的管理
    Web界面

      这样一来,就完成了对LXC的配置。同时,你可以选择使用Linux命令,或者在web端控制Linux容器

    返回分页阅读

    本文导航:

    关注排行榜

    产品品牌

    文章推荐

    互动沙龙

    相关内容 网友评论 返回首页
    专家咨询