LXC-容器虚拟化技术

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

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

如何创建一个虚拟环境,先整一个容器出来^_^,其实就是一个完整的文件系统:

debootstrap sid rootfs http://debian.osuosl.org/debian/
这个命令会从在线站点下载一个完整的操作系统文件系统环境下来
然后写一个配置文件:
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之后重启就好啦

你可能感兴趣的:(LXC)