在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月前
|
存储 安全 Linux
Podman入门全指南:安装、配置与运行容器
Podman入门全指南:安装、配置与运行容器
3221 1
|
8月前
|
存储 Linux 调度
Ubantu docker学习笔记(五)容器底层技术
Ubantu docker学习笔记(五)容器底层技术
|
8月前
|
存储 Linux 文件存储
Linux使用Docker部署Traefik容器并实现远程访问管理界面-1
Linux使用Docker部署Traefik容器并实现远程访问管理界面
170 0
|
8月前
|
Linux Shell 虚拟化
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
115 0
|
Kubernetes 安全 Unix
容器之podman基础
容器之podman基础
386 0
|
弹性计算 Linux 持续交付
安装 Docker 容器环境|学习笔记
快速学习安装 Docker 容器环境
安装 Docker 容器环境|学习笔记
|
前端开发 网络协议 关系型数据库
Docker学习笔记九:多容器应用程序
大家好,我是阿萨。之前学习的都是单容器的应用程序,今天学习多容器应用程序。在之前的待办事项容器基础上增加MySQL。
283 0
|
JavaScript Ubuntu Linux
《Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic构建和部署》——第2章 搭建容器运行时环境 2.1标准Linux系统的Docker配置
标准Linux:多个主要的Linux发行版已将Docker打包在其中。如需最新的Docker特性,只要安装相应Linux发行版的最新版本即可。切记,Docker与操作系统有着密切的联系,因此,Linux的早期版本可能并不包含Docker运行所需的全部特性。
4404 0
|
Ubuntu IDE Linux
安装 Docker 容器环境 | 学习笔记
快速学习安装 Docker 容器环境。
|
存储 Kubernetes Linux
Kubernetes必备知识:Linux 容器-容器镜像
用于创建容器镜像的工具称为容器镜像构建器。有时容器引擎执行此任务,也可以使用一些独立工具来构建容器镜像。
392 0
Kubernetes必备知识:Linux 容器-容器镜像