libvirt是一个通用的虚拟化框架,支持xen,kvm,lxc多种虚拟化技术,本文作为一个笔记。
设置LXC为默认(默认为qemu)
export LIBVIRT_DEFAULT_URI=lxc:///
virsh -c lxc:/// 可省略
网络设置
NAT
NAT是libvirt默认自带,叫做default,通过下面的 命令查看
1
|
virsh net-list
|
假设宿主机有两个网卡,eth0为内网,eth1为外网,我们可以为容器桥接出两个接口:
#cat lan.xml
1
2
3
4
5
|
<
network
>
<
name
>lan</
name
>
<
forward
mode
=
"bridge"
/>
<
interface
dev
=
"eth0"
/>
</
network
>
|
#cat wan.xml
1
2
3
4
5
|
<
network
>
<
name
>wan</
name
>
<
forward
mode
=
"bridge"
/>
<
interface
dev
=
"eth1"
/>
</
network
>
|
1
2
3
|
导入配置
virsh net-define lan.xm
virsh net-define wan.xml
|
开启网卡
1
2
3
4
|
virsh net-start lan
virsh net-autostart lan
virsh net-start wan
virsh net-autostart wan
|
应用容器
应用容器共享宿主机的各种资源,包括内核,各种软件包,各种库,它仅有一个独立的运行空间,像是一个沙箱环境。
创建一个名为web的应用容器
cat web.xml
1
2
3
4
5
6
7
8
9
10
11
|
<
domain
type
=
"lxc"
>
<
name
>web</
name
>
<
memory
>102400</
memory
>
<
os
>
<
type
>exec</
type
>
<
init
>/bin/sh</
init
>
</
os
>
<
device
>
<
console
type
=
"pty"
/>
</
device
>
</
domain
>
|
导入virsh
1
|
virsh define web.xml
|
开机启动
1
|
virsh autostart web
|
进入容器
1
|
virsh console web
|
编辑容器配置
1
|
virsh edit web
|
删除容器
1
|
virsh undefine web
|
操作系统容器
操作系统容器除了Linux内核,自己包含一整套运行环境,像是一个chroot环境。
操作系统容器创建稍稍复杂一点
1、创建根目录
1
|
mkdir
-p
/lxc/centos7
|
2、下载并解压镜像 http://images.linuxcontainers.org/images/centos/7/amd64/default/20140807_02:37/rootfs.tar.xz
1
2
3
4
|
cd
/lxc/centos7
wget xxx
xz -d rootfs.
tar
.xz
tar
xvf rootfs.
tar
|
3、创建xml模板
cat centos7.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<
domain
type
=
"lxc"
>
<
name
>centos7</
name
>
<
memory
unit
=
"KiB"
>1048576</
memory
>
<
currentMemory
unit
=
"KiB"
>1048576</
currentMemory
>
<
resource
>
<
partition
>/machine</
partition
>
</
resource
>
<
os
>
<
clock
offset
=
'utc'
/>
<
on_poweroff
>destory</
on_poweroff
>
<
on_reboot
>restart</
on_reboot
>
<
on_crash
>restart<
on_crash
>
</
devices
>
<
emulator
>/usr/lib/libvirt/libvirt_lxc</
emulator
>
<
filesystem
type
=
'mount'
accessmode
=
'passthrough'
>
<
source
dir
=
'/lxc/centos7'
/>
<
target
dir
=
'/'
/>
</
filesystem
>
<
interface
type
=
'network'
>
<
mac
address
=
'00:16:3e:52:87:f1'
/>
<
source
network
=
'lan'
/>
</
interface
>
<
console
type
=
'pty'
>
<
target
type
=
'lxc'
port
=
'0'
/>
</
console
>
</
devices
>
</
domain
>
|
导入容器
1
|
virsh define centos7.xml
|
启动容器
1
2
|
virsh start centos7
virsh autostart centos7
|
进入容器
1
|
virsh console centos7
|
停止开机启动
1
|
virsh autostart --disable centos7
|
退出lxc console
ctrl+]
本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/1537221,如需转载请自行联系原作者