在Ubuntu 13.04上通过lxc搭建容器java运行环境

系统 Linux
最近做云平台,和另一个小伙伴一起,他做php我做java。网站那块差不多弄好了,现在开始搭建java环境,最初想了很多方案,由于需要沙箱隔离,cpu,内存限制和一些资源共享,最终决定采用lxc,所谓lxc就是系统级别上的隔离,无须再硬件上做任何配置,就可以达到虚拟机的效果,当然在隔离程度上不及vmware之类,不过这样亦能满足我的云平台各种需求。

step 1:安装lxc

 

  1. sudo apt-get install lxc 

说明:由于在ubuntu中通过apt-get安装lxc会自动安装lxc依赖的其他软件,debootstrap,lvm2,cgroup-lite等。

step 2:lxc宿主主机配置

首先介绍几个文件夹(默认通过apt-get安装将自动生成以下文件/文件夹)

1. /etc/lxc/default.conf

创建容器时若未指定配置文件,则默认使用这个default.conf作为该容器的配置文件

2. /usr/share/lxc/templates/

该目录下保存了LXC支持的各种发行版的linux模板,通常有:

3. /var/lib/lxc/

这个目录是用来存放容器实例的,默认情况下该文件夹只有管理员才有权限访问读写其中文件

4. /var/cache/lxc/

第一次创建容器,需要下载一个mini版的容器系统,会花很长时间,创建好后,将会在该目录下创建缓存,再次创建直接采用缓存无须再网上下载,对于我的需求,我比较喜欢用lxc-clone,所有应用的容器几乎都是相同的配置,所以克隆不仅节省时间还省去大量配置的繁琐

step 3:检验lxc是否已安装好

 

  1. lxc-verison 

如果显示 lxc version: x.x.x表示安装成功。这里x表示版本号,我安装的是lxc version:0.9.0

 

  1. lxc-checkconfig 

按理说所有选项都应该是enable,但是User namespace:missing,别捉急,这影响不大。有人说是内核配置的问题,有人说只在ubuntu32位系统出现。下面这段话是一个外国博友写的:

step 4:创建第一个容器master

创建一个名为master的容器,采用ubuntu作为模板。注意这里别忘了加sudo,不然会报错的

 

  1. sudo lxc-create -t ubuntu -n master 
  2.  
  3. -t : 创建的虚拟机模板名称,默认为ubuntu 12.04最小安装版,非常小 
  4.  
  5. -n : 创建的虚拟名称,需要指定 
  6.  
  7. -f : 指定配置文件   
  8.  
  9. -B : 虚拟机磁盘的系统,为了控制单个虚拟机的磁盘容量限制。 
  10.  
  11. --lvname :虚拟机使用卷名,默认使用虚拟机名  
  12.  
  13. --vgname :卷组名称,这个一定要有,默认名称为lxc,可以单独指定。 
  14.  
  15.           若不指定此选项,则要求名称为lxc的卷组已经存在,否则,请指定已经卷组名 
  16.  
  17. --fstype :文件系统类型,默认为ext4类型   
  18.  
  19. --fssize :磁盘容量,默认为1G,单个应用所占有磁盘空间,一般安装之后,除了系统文件等,也就剩下500M作用可以使用。 

 

第一次创建会花一些时间,创建完成后,会提示创建成功,默认的用户名和密码都是ubuntu

 

  1. sudo lxc-start -n master -d 
  2. sudo lxc-console -n master 

 

以守护进程开启master容器,然后进入控制台,输入用户名和密码ubuntu,现在看到的目录是这个容器的目录,无法访问宿主主机的目录,对于用户来说相当于是一台完整的服务器。

退出控制台【ctrl+a q】

step 5:在容器中搭建java环境:jdk+tomcat

首先去官网下好jdk和tomcat和你自己系统对应的版本,我这里是jdk1.7.0_45.zip和apache-tomcat-8.0.0-RC5.tar.gz

新建文件夹

 

  1. mkdir /var/lib/lxc/master/rootfs/usr/local/java 

移动上面两个文件到java目录下并解压,tomcat文件夹重命名为tomcat。注意解压的时候可能有权限问题,使用sudo chmod -R 755 filename修改文件权限。

接下来的配置都是在容器中进行,命令行进入容器控制台。

配置环境变量:

 

  1. sudo vim /etc/profile 

在最后加上你的jre的路径,tomcat的路径等

比如我的是在/usr/local/java/jdk1.7.0_45,/usr/local/java/tomcat,这里的根目录是容器的根目录,所以环境变量配置为:

 

  1. export JAVA_HOME=/usr/local/java/jdk1.7.0_45 
  2. export CATALINA_HOME=/usr/local/java/tomcat 
  3. export TOMCAT_HOME=/usr/local/java/tomcat 
  4. export JRE_HOME=${JAVA_HOME}/jre 
  5. export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:${CATALINA_HOME}/lib 
  6. export PATH=${JAVA_HOME}/bin:$PATH:${CATALINE_HOME}/bin 

 

退出保存,执行以下命令生效

 

  1. source /etc/profile 

检验是否生效

 

  1. echo $PATH 

如果输出你的jdk路径表示已生效

启动tomcat

 

  1. sh /usr/local/tomcat/bin/startup.sh 

顺便看看8080端口开启没

 

  1. netstat -nl | grep 8080 

输入网址:http://localhost:8080

如果出现tomcat的欢迎页面,大功告成。

 

责任编辑:奔跑的冰淇淋 来源: 开源中国博客
相关推荐

2014-11-18 00:45:58

UbuntuLXC容器

2010-09-17 11:01:05

Java运行环境

2011-09-01 19:06:57

UbuntuLua安装环境

2011-06-29 10:06:27

Ubuntu 11.0Android

2010-09-17 14:27:18

NetBeansAndroid

2009-03-04 12:16:13

2011-08-29 11:32:44

UbuntuiPhone

2009-06-29 15:09:00

Java环境搭建Ubuntu

2010-12-13 14:41:44

Android 2.3MyEclipse

2014-05-07 10:04:57

DockerLinux容器Ubuntu

2012-10-29 10:11:04

Ubuntu

2015-09-06 09:55:51

UbuntuHHVM

2017-03-09 10:07:04

Ubuntu系统技巧

2022-01-18 17:57:21

PodmanLinux容器

2019-07-08 15:38:56

FedoraJupyter数据科学家

2017-02-06 11:55:40

DockerJava Web环境

2014-07-07 09:49:13

UbuntuDocker

2015-12-28 10:30:03

UbuntuASP.NET环境

2020-11-24 10:40:12

Ubuntu 20.0LinuxVue

2012-02-14 09:33:14

Titanium MoTitaniumUbuntu 10.0
点赞
收藏

51CTO技术栈公众号