首页 > 代码库 > 在libvirt 中体验容器

在libvirt 中体验容器

libvirt是一个通用的虚拟化框架,支持xenkvmlxc多种虚拟化技术,本文作为一个笔记。


设置LXC为默认(默认为qemu

export LIBVIRT_DEFAULT_URI=lxc:///


virsh -c lxc:/// 可省略


网络设置


NAT

NATlibvirt默认自带,叫做default,通过下面的 命令查看

virsh net-list


假设宿主机有两个网卡,eth0为内网,eth1为外网,我们可以为容器桥接出两个接口:


#cat lan.xml

<network>
   <name>lan</name>
   <forward mode="bridge" />
      <interface dev="eth0" />
 </network>

#cat wan.xml

<network>
  <name>wan</name>
     <forward mode="bridge" />
       <interface dev="eth1" />
  </network>
导入配置
virsh net-define lan.xm
virsh net-define wan.xml

开启网卡

virsh net-start lan
virsh net-autostart lan
virsh net-start wan
virsh net-autostart wan


应用容器

应用容器共享宿主机的各种资源,包括内核,各种软件包,各种库,它仅有一个独立的运行空间,像是一个沙箱环境。


创建一个名为web的应用容器

cat web.xml

<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

virsh define web.xml

开机启动

virsh autostart web

进入容器

virsh console web

编辑容器配置

virsh edit web

删除容器

virsh undefine web


操作系统容器

操作系统容器除了Linux内核,自己包含一整套运行环境,像是一个chroot环境。


操作系统容器创建稍稍复杂一点


1、创建根目录

mkdir -p /lxc/centos7

2、下载并解压镜像  http://images.linuxcontainers.org/images/centos/7/amd64/default/20140807_02:37/rootfs.tar.xz


cd /lxc/centos7
wget   xxx
xz -d rootfs.tar.xz
tar xvf rootfs.tar

3、创建xml模板

cat centos7.xml

<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>


导入容器

virsh define centos7.xml

启动容器

virsh start centos7
virsh autostart centos7

进入容器

virsh console centos7

停止开机启动

virsh autostart --disable centos7


退出lxc console

ctrl+]

本文出自 “专注Linux 运维” 博客,请务必保留此出处http://purplegrape.blog.51cto.com/1330104/1537221