在Ubuntu系统中使用LXC容器的方法

这篇文章主要介绍“在Ubuntu系统中使用LXC容器的方法”,在日常操作中,相信很多人在在Ubuntu系统中使用LXC容器的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在Ubuntu系统中使用LXC容器的方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联公司服务项目包括平塘网站建设、平塘网站制作、平塘网页制作以及平塘网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,平塘网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到平塘省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

Ubuntu 下安装 LXC

使用下面的命令安装 LXC 在用户态的工具:

   

代码如下:

$ sudo apt-get install lxc

然后检查当前内核是否支持 LXC。如果所有结果都是“enable”,说明内核支持:

   

代码如下:

$ lxc-checkconfig


 在Ubuntu系统中使用LXC容器的方法

    安装完 LXC 工具后,就能看到 LXC 自动创建了一块桥接网卡(lxcbr0,可以在 /etc/lxc/default.conf 中设置)。
    在Ubuntu系统中使用LXC容器的方法

    当你创建了 LXC 容器后,它的网口会自动链接到这个桥接网卡上,然后这个容器就能和外部世界通信了。
创建 LXC 容器

为了在指定环境下(比如 Debian Wheezy 64位)创建 LXC 容器,你需要一个相应的 LXC 模板。幸运的是 LXC 提供的工具集成了一整套现成的 LXC 模板,你可以在 /usr/share/lxc/templates 目录下找到它们。

    

代码如下:

$ ls /usr/share/lxc/templates


     在Ubuntu系统中使用LXC容器的方法

     一个 LXC 模板实质上就是一个脚本,用于创建指定环境下的容器。当你创建 LXC 容器时,你需要用到它们。

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

   

代码如下:

$ sudo lxc-create -n -t ubuntu


    在Ubuntu系统中使用LXC容器的方法

    默认情况下,这个命令会创建一个最小的 Ubuntu 环境,版本号与你的宿主机一致,我这边是“活泼的蝾螈”(版本号是13.10),64位。

当然你也可以创建任何你喜欢的版本,只要在命令里面加一个版本参数即可。举个例子,创建 Ubuntu 14.10 的容器:

   

代码如下:

$ sudo lxc-create -n -t ubuntu -- --release utopic

这个命令就会下载安装指定环境下的软件包,创建新容器。整个过程需要几分钟时间,与容器的类型有关,所以,你可能需要耐心等待。
在Ubuntu系统中使用LXC容器的方法

下载安装完所有软件包后,LXC 容器镜像就创建完成了,你可以看到默认的登录界面。容器被放到 /var/lib/lxc/<容器名> 这个目录下,容器的根文件系统放在 /var/lib/lxc/<容器名>/rootfs 目录下。

创建过程中下载的软件包保存在 /var/cache/lxc 目录下面,当你想另外建一个一样的容器时,可以省去很多下载时间。

用下面的命令看看主机上所有的 LXC 容器:

   

代码如下:

$ sudo lxc-ls --fancy

   NAME  STATE    IPV4  IPV6  AUTOSTART  
   ------------------------------------
   test-lxc   STOPPED  -     -     NO

使用下面的命令启动容器。参数“-d”将容器作为后台进程打开。如果没有指定这个参数,你可以在控制台界面上直接把容器的运行程序关闭(LCTT译注:Ctrl+C组合键)。

   

代码如下:

$ sudo lxc-start -n -d

打开容器后,看看状态:

  

代码如下:

$ sudo lxc-ls --fancy

   NAME  STATE    IPV4       IPV6  AUTOSTART  
   -----------------------------------------
   lxc   RUNNING  10.0.3.55  -     NO

容器状态是“运行中”,容器 IP 是10.0.3.55。

你也可以看到容器的网络接口(比如我这里是 vethJ06SFL)自动与 LXC 内部网桥(lxcbr0)连上了:

  

代码如下:

$ brctl show lxcbr0


  在Ubuntu系统中使用LXC容器的方法

    管理 LXC 容器

我们已经学习了怎么创建和启动 LXC 容器,现在来看看怎么玩一个正在运行着的容器。

第一步:打开容器控制台:

   

代码如下:

$ sudo lxc-console -n


    在Ubuntu系统中使用LXC容器的方法

    使用“Crtl+a q”组合键退出控制台。

停止、删除容器:

   

代码如下:

$ sudo lxc-stop -n
   $ sudo lxc-destroy -n

复制容器,用下面的命令:

   

代码如下:

$ sudo lxc-stop -n
   $ sudo lxc-clone -o -n

常见问题

这个小节主要介绍你们在使用 LXC 过程中碰到过的问题。

    创建 LXC 容器时遇到下面的错误:

   

代码如下:

$ sudo lxc-create -n test-lxc -t ubuntu

   lxc-create: symbol lookup error: /usr/lib/x86_64-linux-gnu/liblxc.so.1: undefined symbol: cgmanager_get_pid_cgroup_abs_sync

错误的原因是你运行了最新的 LXC,但是它所依赖的 libcgmanager 版本较老,两者不兼容。升级下 libcmanager 即可解决问题:

  

代码如下:

$ sudo apt-get install libcgmanager0

到此,关于“在Ubuntu系统中使用LXC容器的方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


分享文章:在Ubuntu系统中使用LXC容器的方法
网页网址:http://myzitong.com/article/gcsohi.html