简明lxc入门手册

最新常常尝试新的软件导致我的云服务器(Ubuntu)被装的乱七八糟不得不没事干重装,所以考虑尝试使用lxc提供的虚拟化服务来make things clean and clear

lxc的安装

在Ubuntu环境下可以直接通过apt-get来安装

$ sudo apt-get install lxc

接下来检查一下当前环境下内核是否支持lxc

$ lxc-checkconfig 

一般情况下会显示一列enable(如下图)

说明lxc符合你的环境,可以接下来进一步操作

创建新的容器

创建好lxc环境后我们就可以开始使用它了,第一步是新建一个新的容器

$ sudo lxc-create -n <你的新容器名字> -t ubuntu 

如你所见上面那个步骤是新建一个ubuntu系统的虚拟容器,


特别注意,由于国内特殊的网络环境,以上的创建步骤很可能无法成功,这是因为创建过程中需要被下载的ubuntu镜像被墙了.

你需要修改一下lxc的默认ubuntu镜像下载地址来搞定

$ vi /etc/default/lxc

我们这里使用网易的ubuntu镜像地址,在这个配置文件中粘贴

MIRROR="http://mirrors.163.com/ubuntu/"

然后重试上面步骤一般即可成功创建


当然你也可以创建一下其他的环境,lxc是通过脚本模板的方式来提供这部分的操作

$ cd /usr/share/lxc/templates
$ ls  

会显示如下

如你所见如果我们想安装一个centos的虚拟环境那直接把上一步命令中ubuntu环城centos即可

如果需要特定的系统版本号,则如下操作

$ sudo lxc-create -n <你的新容器名字> -t ubuntu -- --release 版本号 

接下来就是漫长的等待(大约20分钟左右)会显示创建完成(如下),此时你的第一台容器完美诞生了~

##
# The default user is 'ubuntu' with password 'ubuntu'!
# Use the 'sudo' command to run tasks as root in the container.
##

默认情况下容器被放到 /var/lib/lxc/<容器名> 这个目录下,容器的根文件系统放在 /var/lib/lxc/<容器名>/rootfs 目录下。

lxc管理

在安装好之后我们先查看一下状态,输入

$ sudo lxc-ls --fancy 

会显示

NAME  STATE    IPV4  IPV6  AUTOSTART  
------------------------------------
lee   STOPPED  -     -     NO         

则说明你已经创建好自己的容器,但是他并没有启动也没有分配IP,你可以输入

$ sudo lxc-start -n <容器名> -d 

然后再次查看状态,会显示

NAME  STATE    IPV4       IPV6  AUTOSTART  
-----------------------------------------
lee   RUNNING  10.0.3.34  -     NO         

显示成功启动而且分配了10.0.3.34 这个地址,我们可以像任何普通远程服务器那样去登陆他(当然只限你远程服务器本机登陆,因为是内网)

$ sudo ssh ubuntu@10.0.3.34
password: ubuntu

随意折腾吧!

你也可以使用lxc命令停止和删除和克隆(需要先停止)容器

$ sudo lxc-stop -n <container-name>
$ sudo lxc-destroy -n <container-name> 
sudo lxc-clone -o <container-name> -n <new-container-name>