linux 容器技术 openvz,开源Linux容器 OpenVZ 快速上手指南-Go语言中文社区

Linux 容器及OpenVZ 简介

Linux 容器(Linux Container,LXC)是一种轻量级的虚拟运行环境,它与传统的虚拟机方

式不同。传统的虚拟机需要对硬件作出抽象并提供了一个完整的操作系统,而LXC 不同的

地方就是,多个容器都与系统共用一套内核机制,而容器中提供的只是运行环境需要的文件

系统、虚拟网络等。

具体的架构如图所示:

7f101624746b887a7f1009a22c9deb97.png

如图中所示,本文要介绍的OpenVZ 是一种容器的实现方式。还有其他的一些容器,如LXC tool (这个工具可以用于创建LXC 运行环境,Docker 可以说就是基于LXC tool的),本博客会在后续相继深入分析。

OpenVZ 对于容器技术实践较早,内核中用于实现LXC 的很多机制也都出自他们之手,目前OpenVZ 的众多特性都基于RHEL6 内核(内核版本为2.6.32)进行修改,而且其中一部分新特性并未加入主流内核,所以建议使用OpenVZ 的内核以达到更好的容器特性,如隔离性、快照等。

OpenVZ 安装

Debian7(wheezy) 版本默认不支持OpenVZ(不知是因为内核版本问题,亦或一些其他问题)

,但是OpenVZ 团队添加了对Debian7 的支持,我们可以通过安装他们提供的Linux 内核镜

像完成安装,参考[1][3]

1. 安装内核镜像

如前面所属,在Debian7 上需要专门安装OpenVZ 提供的内核镜像才可以完整支持OpenVZ,方法如下:

1.1 添加源并更新(下文操作都需要root 权限)

`# cat << EOF > /etc/apt/sources.list.d/openvz.list

deb http://download.openvz.org/debian wheezy main

deb http://download.openvz.org/debian wheezy-test main

EOF

# apt-get update`

1.2 安装内核镜像

`# apt-get install linux-image-openvz-amd64

# apt-get install linux-image-openvz-686 (如果您仍然使用32位系统)`

2. 配置sysctl 以及安装相关工具

OpenVZ 内核镜像安装完毕,在重启之前还需要如下配置

2.1 有一些内核参数需要配置以保证OpenVZ 的正常运行,配置文件为”/etc/sysctl.conf”

# On Hardware Node we generally need

# packet forwarding enabled and proxy arp disabled

net.ipv4.ip_forward = 1

net.ipv6.conf.default.forwarding = 1

net.ipv6.conf.all.forwarding = 1

net.ipv4.conf.default.proxy_arp = 0

# Enables source route verification

net.ipv4.conf.all.rp_filter = 1

# Enables the magic-sysrq key

kernel.sysrq = 1

# We do not want all our interfaces to send redirects

net.ipv4.conf.default.send_redirects = 1

net.ipv4.conf.all.send_redirects = 0

2.2 需要安装一些用户空间的工具

# apt-get install vzctl vzquota ploop vzstats

3. 重启至OpenVZ 内核

配置以及相关软件安装完毕,需要重启内核至OpenVZ 的内核

简单上手

对于这样一个可以提供完整系统运行环境的Linux 容器,当然得把玩把玩,快快坐好体验一下吧。更多参考[2][4]

1. 下载预先准备的模板(也可以称作镜像)

1.1 从官方网站下载你需要的模板[5][6]

1.2 将下载好的模板移动到需要的路径下

# mv ubuntu-14.04-x86.tar.gz /var/lib/vz/template/cache/

2. 创建以及配置容器信息

# vzctl create CTID --ostemplate osname

# vzctl set CTID --hostname test --save

# vzctl set CTID --ipadd a.b.c.d --save

# vzctl set CTID --nameserver a.b.c.d --save

如:

# vzctl create 111 --ostemplate ubuntu-14.04-x86

# vzctl set 111 --hostname ubuntu --save

# vzctl set 111 --ipadd 192.168.2.233 --save

# vzctl set 111 --nameserver 192.168.2.1 --save

3. 开始运行以及使用

# vzctl start CTID

# vzctl exec CTID ps ax # Now the container is running!

# vzctl enter CTID

entered into container CTID

[container]# ...

[container]# exit

exited from container VEID

# vzctl stop CTID

# vzctl destroy CTID

如:

# vzctl start 111

# vzctl enter 111

[container]# do something (default is root)

[container]# exit

# vzctl stop 111

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值