在ubuntu上运行LXC虚拟机

背景:由于工作测试需要,在不同的主机上测试软件功能,但是又没有单独的虚拟机可以使用,想到可以使用LXC进行轻量级的虚拟化。LXC虚拟机选择在主机上虚拟macvlan网卡供虚拟机使用。主机eth0网络地址时192.168.85.153,主机的网关是192.168.85.1,虚拟机的网络使分两种情况,一种是使用单独的网络,192.168.100.0/24。另外一种是自动获取和主机一样的IP网络。

主机准备:

1 主机打开转发功能,在/etc/sysctl.conf添加net.ipv4.ip_forward = 1。 然后执行sysctl -p

2 主机网卡设置。

  #ip link add link eth0 macvlan0 type macvlan mode bridge

#ip link set macvlan0 up

Case 1:

此时虚拟机的配置文件如下:

lxc.network.type = macvlan

lxc.network.macvlan.mode = bridge

lxc.network.flags = up

lxc.network.link = macvlan0

lxc.network.hwaddr = fe:e9:51:8f:88:08

lxc.network.ipv4 = 192.168.100.2/24

lxc.network.ipv4.gateway = 192.168.85.153

lxc.rootfs = /home/lxc/centos-test1/rootfs

lxc.include = /usr/share/lxc/config/centos.common.conf

lxc.arch = x86_64

lxc.utsname = centos-test1.synnex.org

lxc.autodev = 1

lxc.mount.auto = proc sys cgroup

在启动虚拟机之前应该修改虚拟机的网卡配置文件,

# vim rootfs/etc/sysconfig/network-scripts/ifcfg-eth0

更改为使用静态IP :BOOTPROTO=none

主机路由设置:

  #route add -net 192.168.100.0/24 dev macvlan0 

此时虚拟机路由:

route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         192.168.85.153  0.0.0.0         UG    0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U     1006   0        0 eth0

192.168.85.153  0.0.0.0         255.255.255.255 UH    0      0        0 eth0

192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

此时主机和虚拟机之间是连通的。

Case 2:

此时LXC虚拟机的配置文件如下

lxc.network.type = macvlan

lxc.network.macvlan.mode = bridge

lxc.network.flags = up

lxc.network.link = macvlan0

lxc.network.hwaddr = fe:e4:24:fc:55:da

lxc.rootfs = /home/lxc/centos-test2/rootfs

lxc.include = /usr/share/lxc/config/centos.common.conf

lxc.arch = x86_64

lxc.utsname = centos-test2.lmy.org

lxc.autodev = 1

lxc.mount.auto = proc sys cgroup

获取IP:192.168.85.228 

主机路由设置:

  #route add -host 192.168.85.228 gw 192.168.85.1 

  说明:虽然使用了macvlan0作为虚拟机网卡,但是它的网关也是192.168.85.1,所以在主机上设置主机访问该虚拟机的路由也应该设置为同样的路由

此时虚拟机路由,

[[email protected] ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         192.168.85.1    0.0.0.0         UG    0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U     1022   0        0 eth0

192.168.85.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

可以看出多了一条路由设置,将他删除

#route del -net 192.168.85.0/24 dev eth0

此时的虚拟机路由:

# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         192.168.85.1    0.0.0.0         UG    0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U     1022   0        0 eth0

此时虚拟机和主机之间网络是互通的,但是虚拟机与外网还未通。

时间: 2024-08-01 17:00:33

在ubuntu上运行LXC虚拟机的相关文章

如何在centos6.5上使用LXC虚拟机

一:什么是LXC LXC,其名称来自Linux软件容器(Linux Containers)的缩写,一种操作系统层虚拟化(Operating system–level virtualization)技术,为Linux内核容器功能的一个用户空间接口.它将应用软件系统打包成一个软件容器(Container),内含应用软件本身的代码,以及所需要的操作系统核心和库.通过统一的命名空间和共用API来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境,使得Linux用户可以容易的创建和管理系统或

ubuntu上运行linux项目

①首先把项目传到linux中 ②进入项目文件夹中,安装Django库 pip3 install django ③安装操作mysql的库mysqlclient pip3 install mysqlclient ④数据迁移 python3 manage.py makemigration python3 manage.py migrate ④执行项目 python3 manage.py runserver 0.0.0.0:8000 ⑤访问项目 http://服务器ip:端口号 原文地址:https:/

Window Server 2019 配置篇(3)- 建立hyper-v集群并在其上运行win10 pro虚拟机

上次讲到我们的域里有了网关跟DHCP,这次我们要在域中建立hyper-v集群并在其上运行win10 pro虚拟机 那么什么是hyper-v集群呢? 就是两个及两个以上的运行hyper-v服务的服务器建立的可以进行故障转移的集群 除了这些,hyper-v上运行的虚拟机的虚拟盘也要运行在集群中iscsi的共享磁盘中,这样才能保证故障转移的可能性 那么话不多说,我们建立三个虚拟机: hyper-v-1 ip 192.168.10.30 hyper-v-2 ip 192.168.10.40 iscsi 

在Ubuntu上下载、编译和安装Android最新源码

看完了前面说的几本书之后,对Linux Kernel和Android有一定的认识了,是不是心里蠢蠢欲动,想小试牛刀自己编译一把Android源码了呢?一直习惯使用Windows系统,而Android源码是不支持在Windows上编译上,于是决定使用虚拟机安装Ubuntu,然后下载.编译和安装Android源码. 一. 环境准备. 1. 磁盘空间预留20G左右,内存3G,由于一边要跑主机,一边要跑虚拟机,内存要求还是比較高的,这样才会比較流畅. 2. 安装VMWare 7.1.4.我的操作系统是W

Ubuntu系统下Xen虚拟机的基本安装方法(代码创建)

Ubuntu上Xen安装虚拟机方法一dd一个空的磁盘sudo dd if=/dev/zero of=/home/vm1.img bs=1G count=8 下载Xen VM通用配置文件 sudo wget http://mirrors.aliyun.com/ubuntu/dists/precise/main/installer-amd64/current/images/netboot/xen/xm-debian.cfg \ -O /etc/xen/vm1.conf对下载下来的配置文件进行相应的修

Linux上运行NET

今天尝试了下Ubuntu上运行NET程序,按照 https://github.com/aspnet/Home 的指引,一步一步来: 1.安装DNVM(原名KVM) Linux控制台下输入 curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh 2.安装DNX(原名KRE) dnvm upgrade

Ubuntu上让Firefox使用Chrome最新版PepperFlash插件

Adobe Flash Player 11.2 将是支持 Linux 平台的最后一个版本. Adobe 只继续为 Flash Player 11.2 for Linux 提供安全更新,而不提供版本更新. Linux上为Firefox添加Flash Player支持也非常简单. 下载Adobe为Linux提供的tar.gz包: https://get.adobe.com/cn/flashplayer/ 把压缩包里的libflashplayer.so复制或软链接到/usr/lib/mozilla/p

Windows10 上运行Ubuntu Bash

Windows10 上运行Ubuntu Bash 2016年4月6日,Windows 10 Insider Preview 发布的版本 14316,添加了Ubuntu Bash,在Windows上提供一个Linux环境,可以直接执行Linux命令. 以前在Windows上有Linux仿真器应用 Cygwin,用Cygwin应用把Linux命令编译成Windows下的可执行文件, 这次Win10更进一步,把Linux仿真器加到内核里,作为系统级别的服务提供对原生Ubuntu的支持. 实现这一功能的

菜鸟玩云计算之十五:在Ubuntu上创建和管理Redhat虚拟机

菜鸟玩云计算之十五:在Ubuntu上创建和管理Redhat虚拟机 [email protected] 虚拟机给工作带来巨大的便利,不仅仅体现在资源的按需使用,而且配置的迁移特别方便.本文将使用Ubuntu14.04 Desktop版本创建Redhat 64 Enterprise Server(RHEL64)虚拟机. 1 准备好安装光盘镜像 rhel-server-6.4-x86_64-dvd.iso 2 打开虚拟机管理器 尽管可以用命令行的方式创建虚拟机,但是本着简单事情简单做的原则,我使用vi