lxc-Centos6.6
环境版本
[root@bj-idc-15 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.6(Santiago)
[root@bj-idc-15 ~]# uname -a
Linux bj-idc-15 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64
lxc 介绍
LXC,其名称来自Linux软件容器(Linux Containers)的缩写,一种操作系统层虚拟化(Operating system–level virtualization)技术,为Linux内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器(Container),内含应用软件本身的代码,以及所需要的操作系统核心和库。通过统一的命名空间和共用API来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境,使得Linux用户可以容易的创建和管理系统或应用容器。
lxc 网卡设备
[root@bj-idc-15 ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0 #网桥设备
TYPE=Bridge #桥类型
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=10.10.10.15
NETMASK=255.255.255.0
GATEWAY=10.10.10.1
PV6INIT=no
USERCTL=no
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
[root@bj-idc-15 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
PV6INIT=no
USERCTL=no
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
BRIDGE=br0 #连接桥设备
show 网卡信息
我这里已经应用了,所以跟你们会不一样
[root@bj-idc-15 ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.96b9a004b8c9 no eth0
virbr0 8000.525400d73b70 yes vethSWP8RE
virbr0-nic
检查网络
[root@bj-idc-15 data]# service NetworkManager status #状态开启的话请关闭
yum 指定epel源 安装lxc
[root@bj-idc-15 ~]# yum install lxc-libs lxc lxc-templates --enablerepo=epel
检查环境
[root@bj-idc-15 ~]# lxc-checkconfig
Kernel configuration not found at /proc/config.gz; searching...
Kernel configuration found at /boot/config-2.6.32-431.el6.x86_64
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
Network namespace: enabled
Multiple /dev/pts instances: enabled
--- Control groups ---
Cgroup: enabled
Cgroup namespace: enabled
Cgroup device: enabled
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: /usr/bin/lxc-checkconfig: line 103: [: -ge: unary operator expected
/usr/bin/lxc-checkconfig: line 103: [: -gt: unary operator expected
enabled
Cgroup cpuset: enabled
--- Misc ---
Veth pair device: enabled
Macvlan: enabled
Vlan: enabled
Bridges: enabled
Advanced netfilter: enabled
CONFIG_NF_NAT_IPV4: missing
CONFIG_NF_NAT_IPV6: missing
CONFIG_IP_NF_TARGET_MASQUERADE: enabled
CONFIG_IP6_NF_TARGET_MASQUERADE: missing
CONFIG_NETFILTER_XT_TARGET_CHECKSUM: enabled
--- Checkpoint/Restore ---
checkpoint restore: missing
CONFIG_FHANDLE: missing
CONFIG_EVENTFD: enabled
CONFIG_EPOLL: enabled
CONFIG_UNIX_DIAG: missing
CONFIG_INET_DIAG: enabled
CONFIG_PACKET_DIAG: missing
CONFIG_NETLINK_DIAG: missing
File capabilities: /usr/bin/lxc-checkconfig: line 137: [: -gt: unary operator expected
Note : Before booting a new kernel, you can check its configuration
usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig
启动lxc和libvirtd
[root@bj-idc-15 ~]# /etc/init.d/libvirtd start
[root@bj-idc-15 ~]# /etc/init.d/lxc start
更改配置文件
把lxc.network.link 改为前面配置的br0
[root@bj-idc-15 ~]# cat /etc/lxc/default.conf
lxc.network.type = veth
lxc.network.link = br0
lxc.network.flags = up
建立一个容器
lxc-create -n vm01 -t centos
-t : 指定模板类型
-d : 后台启动
创建并启动一个容器
lxc-create -n vm01 -t centos
lxc-create -n vm02 -t centos
lxc-start -n vm01
lxc-start -n vm02
密码存放位置
[root@bj-idc-15 ~]# cat /var/lib/lxc/vm01/tmp_root_pass
Root-vm01-3Iov2m
lxc状态信息
[root@bj-idc-15 ~]# lxc-info -n vm02
Name: vm02
State: RUNNING
PID: 20042
IP: 10.10.10.117
CPU use: 1.66 seconds
BlkIO use: 24.05 MiB
Memory use: 14.24 MiB
Link: vethULFQOY
TX bytes: 8.89 KiB
RX bytes: 2.44 MiB
Total bytes: 2.45 MiB
连接方式
- 直接连接,
- ssh访问
模板类型
[root@bj-idc-15 ~]# cd /usr/share/lxc/templates/
[root@bj-idc-15 templates]# ls
lxc-alpine lxc-archlinux lxc-centos lxc-debian lxc-fedora lxc-openmandriva lxc-oracle lxc-sshd lxc-ubuntu-cloud
lxc-altlinux lxc-busybox lxc-cirros lxc-download lxc-gentoo lxc-opensuse lxc-plamo lxc-ubuntu
修改容器密码
chroot /var/lib/lxc/vm01/rootfs #切换到此目录下,修改密码
passwd #输入新密码
exit #修改完退出虚拟机容器
关闭容器
[root@bj-idc-15 vm02]# lxc-stop -n vm01