容器:是在用户空间进行隔离的组件叫做容器
常用的容器有lxc ----libcontainer---runc
需要隔离的资源有:
Rootfs:每个容器对应的一个目录做为根目录
User:
Hostname ,domain
Network:设虚拟网卡,分别在不同的用户空间
Ipc(进程间通信)
namespace 名称空间 ,在内核级上将资源进行分区隔离开来,这样就能实现用户空间上的隔离组件
control groups (CGroup):将内核资源按一定比例分配给用户空间使用
lxc容器介绍
与kvm'虚拟机比较:少了内核空间
lxc架构
lxc的安装
安装epel :yum install epel-release
安装lxc : yum install lxc lxc-templates
查看环境是否正常:# lxc-checkconfig
创建一个容器:
它的配置文件和模板在/usr/share/lxc/{templates config}
# lxc-create --name c1 -t centos 进入到目录下创建容器
安装完成后默认容器的root目录是在/var/lib/lxc/c1 下
tmp_root_pass 是管理员的一个随机密码
#chroot /var/lib/lxc/rootfs passwd 修改密码
查看容器:lxc-info --name c1
启动:lxc-start --name c1
启动前需要先创建个桥:brctl addbr virbr0
激活:ip link set dev virbr0 up
给添加一个地址: ip addr add 10.0.0.1/24 dev eth0
网关: Ip route add 0.0.0.0/0.0.0.0 via 10.0.0.254
在外部主机打开net转发: #sysctl -w net.ipv4.ip_forwrd=1
#iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE
#lxc-top 查看容器资源占用
通过web界面控制
yum install python-flask
git clone https://github.com/lxc-webpanel/LXC-Web-Panel.git
python LXC-Web-Panel/lwp.py
后运行成会显示http运行在哪个端口(5000)
在web上访问:172.16.0.1:5000