一、参考文献:
1.LXC的安装与配置使用
2.给予centos7创建一个lxc
二、安装
1.centos的epel源提供了lxc的安装包,在使用epel源时首先安装epel-release包:
yum -y install epel-release
2.安装perl包和debootrap包:
yum install -y deboostrap perl libvirt
(1)一般在linux系统上面有perl解释器,可以使用which perl命令判断是否有该语言的解释器
(2)Deboostrap 是debian/ubuntu 下的一个工具,用来构建一套基本的系统。对应的,有fedora也有类似的功能。lxc会为每个虚拟机构建基本的文件系统,这是一个虚拟的文件系统,众多的虚拟机在底层是共享一套文件系统的。具体见/var/lib/lxcl/lxc_name文件夹下有个rootfs文件夹。那么什么是rootfs?就是文件系统的架构,是一种目录结构,是让操作系统正常运行的文件夹和文件的集合。
(3)libvirt是ilinux上的虚拟化库,可以为虚拟机空间程序的常用功能提供通用的C语言API。是KVM,Xen,LXC主流虚拟化方案。libvirt通过特定于虚拟机监控程序的机制与每个有效虚拟机监控程序进行通信,完成API请求。
3.安装lxc及其模版、依赖包
yum install lxc lxc-templates bridge-utils lsc-libs libcgroup
其中:
lxc:主程序包
lxc-templates:lxc的配置模版,其路径为
/usr/share/lxc/templates
bridge-utils:网桥管理工具
lxc-libs:lxc所需要的文件库
libcgroup:cgroup是为linux内核提供任务聚集和划分的机制,通过一组参数集合将一些任务组织成一个或多个子系统。
libvirt:管理linux的虚拟化功能所需的服务端守护程序,需要针对特定驱动程序的管理程序;
debootstrap:创建debian系列的主机需要的软件包。
三、检验安装结果和启动lxc
1.启动lxc服务
systemctl enable lxc.service
systemctl status lxc.service
systemctl start lxc.service
systemctl stop lxc.service
lxc-checkconfig #检查lxc内核虚拟化状态
2.创建一个centos容器
lxc-create -t centos -n mycentos//t是模板参数,模板可以在/usr/share/lxc/templates下查看,n是容器名参数,
在create的时候,如果没有-f选项,默认会去读一个配置文件:/etc/lxc/default.conf
其中
(1)lxc.network.type指定用于容器的网络类型,而veth代表为容器建立新的网络空间,并链接到lxc.network.link定义的网桥上,实现与外部通信
(2)Lxc.network.link 指定用于和容器接口通信的真实接口。 virbr0是一个虚拟网桥。是KVM默认创建的一个Bridge,主要为连接骑上的虚拟网卡提供NAT访问外网的功能。哈哈,NAT(Network Address Translation,网络地址转换)
(3)Lxc.network.flags用于指定网络的状态,up为网络处于可用状态
3.查看和修改密码
虚拟机创建后,可以在文件
/var/lib/lxc/mycentos/tmp_root_pass`
下查看临时密码。
通过命令chroot /var/lib/lxc/mycentos/rootfs passwd
修改密码。
4.登陆虚拟机
lxc-start -n mycentos
输入用户名:root和刚更改的密码,登入容器: