开源Linux容器 OpenVZ 快速上手指南

Linux 容器及OpenVZ 简介

Linux 容器(Linux Container,LXC)是一种轻量级的虚拟运行环境,它与传统的虚拟机方 式不同。传统的虚拟机需要对硬件作出抽象并提供了一个完整的操作系统,而LXC 不同的 地方就是,,多个容器都与系统共用一套内核机制,而容器中提供的只是运行环境需要的文件 系统、虚拟网络等。

具体的架构如图所示:

如图中所示,本文要介绍的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 wheezy main deb 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

[1] https://wiki.openvz.org/Installation_on_Debian [2] https://wiki.openvz.org/Basic_operations_in_OpenVZ_environment [3] [4] [5] [6]

快乐不是因为得到的多而是因为计较的少!

开源Linux容器 OpenVZ 快速上手指南

相关文章:

你感兴趣的文章:

标签云: