LXC为Linux Container的简写。Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。LXC的一个实例我们一般以container来称呼。
简单来讲,我们可以把lxc + cgroup看做是VirtualBox和Vmware一类的东西。Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。
与传统虚拟化技术相比,它的优势在于:
lxc是一个轻量化的虚拟机和传统的虚拟机也有一定区别
1. lxc会和宿主机共用一个内核,性能损耗比较小。
2. rootfs就在/var/lib/lxc/container_name。可以在宿主机上轻松修改container的文件系统。
运行时环境: 需要支持cgroup内核,现在最新的发行版一般都支持lxc。
安装方法:
建议使用apt-get或者yum从源里下载。自己编译容易被依赖关系搞死..
yum -y install lxc
apt-get install lxc
配置文件:
/etc/lxc/
网络:
使用nat的方法,连接到宿主机和internet.
在/etc/sysctl.conf里打开net.ipv4.ip_forward=1,并运行sysctl -p
brctl addbr nat
brctl setfd nat 0
ifconfig nat 192.168.0.1/16
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o nat -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i nat -o eth0 -j ACCEPT