您的位置:首页 > 其它

LXC-容器虚拟化技术

2014-06-03 16:52 232 查看
lxc是一种操作系统级虚拟化技术,类似的虚拟化技术还有:freebsd的jail,linux的openvz。openvz相比都很熟悉啦,因为好多vps都是用openvz做的,操作系统级别虚拟化跟一般的kvm等虚拟化技术有啥区别呢?通常的虚拟化技术会对硬件做虚拟,提供给虚拟机中的操作系统使用,每一个虚拟机中的系统感觉不到自己是在虚拟机中运行,每个虚拟机可以看作一个真实的硬件+操作系统的组合。操作系统级的虚拟化是在linux的内核以上提供的虚拟化技术,意味着不同的虚拟机跟宿主机之间是共用着一个内核。这样想下,我们是不是省了好多虚拟硬件跟好多个内核的开销呢?难怪openvz可以在一台普通物理机上做出一百多台虚拟机。

chroot这个东西应该好多同学都用过了,会提供给一个独立的环境给大家使用,lxc在cgroup的支持下,可以更好的控制虚拟环境对各种资源的分配。

如何创建一个虚拟环境,先整一个容器出来^_^,其实就是一个完整的文件系统:
debootstrap sid rootfs http://debian.osuosl.org/debian/[/code] 
这个命令会从在线站点下载一个完整的操作系统文件系统环境下来

然后写一个配置文件:

lxc.utsname = my_ssh_container
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.ipv4 = 10.0.2.16/24
lxc.network.name = eth0
lxc.mount = /path/to/fstab
lxc.rootfs = /path/to/rootfs

最后两个最好用绝对路径哦,相对路径的话你换到别的目录下会启动不了。

根据这个配置文件创建一个容器:

lxc-create -n name -f configfile

这个其实会复制配置文件到/var/lib/lxc/name/config^_^

启动一个容器:

lxc-start -n name init

查看容器信息:

lxc-info -n name

停止容器:

lxc-stop -n name

销毁容器:

lxc-destroy -n name

本文参考自:


http://www.ibm.com/developerworks/cn/linux/l-lxc-containers/


按照如上的做法,容器是可以创建启动成功,但是~你是没法操作这个容器的,原因就是,操作系统启动的时候的getty不正常,无法提供给用户shell^_^

去把/etc/inittab其中的getty改成bash的路径就好啦^_^

还有,也可以远程ssh登录,先chroot进去,然后apt-get install openssh-server之后重启就好啦
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: