在libvirt 中体验容器

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

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


设置LXC为默认(默认为qemu

export LIBVIRT_DEFAULT_URI=lxc:///


virsh -c lxc:/// 可省略


网络设置


NAT

NATlibvirt默认自带,叫做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,如需转载请自行联系原作者

目录
相关文章
|
7月前
|
Docker 微服务 容器
探索Docker容器技术:轻松部署和管理应用程序
在当今的软件开发和部署领域,容器技术已经成为一个备受欢迎的话题。其中,Docker容器凭借其简便性、可移植性和高效性,成为了首选的容器解决方案。本文将深入介绍Docker容器技术,帮助您了解其工作原理、用途以及如何开始使用它。
|
7月前
|
存储 Kubernetes 文件存储
使用阿里云容器服务和容器网络文件系统搭建WordPress网站
本教程介绍如何通过阿里云容器服务ACK和容器网络文件系统CNFS搭建一个简单的弹性、高可用WordPress网站,使用CNFS回收站进行数据恢复,验证quota和CNFS在线扩容。
256 0
|
JavaScript Ubuntu Linux
《Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic构建和部署》——第2章 搭建容器运行时环境 2.1标准Linux系统的Docker配置
标准Linux:多个主要的Linux发行版已将Docker打包在其中。如需最新的Docker特性,只要安装相应Linux发行版的最新版本即可。切记,Docker与操作系统有着密切的联系,因此,Linux的早期版本可能并不包含Docker运行所需的全部特性。
4295 0
|
Kubernetes 应用服务中间件 数据安全/隐私保护
|
Docker 容器 网络协议
详解docker中容器devicemapper设备的挂载流程
详解docker中容器devicemapper设备的挂载流程事故起因版本说明:本文中docker版本主要基于1.10版本,操作系统为centos7。devicemapper在文中缩写为dm。 某个用户的容器启动不起来,启动时候一直报错。
14201 0
|
Kubernetes Docker 容器
用 k8s 管理机密信息 - 每天5分钟玩转 Docker 容器技术(155)
k8s 是怎样管理用户名密码这类机密信息的呢?
1763 0
|
Web App开发 存储 Docker
NFS PersistentVolume - 每天5分钟玩转 Docker 容器技术(151)
上一节我们介绍了 PV 和 PVC,本节通过 NFS 实践。
2547 0
|
应用服务中间件 虚拟化 nginx