文档章节

ubuntu13.04通过lxc搭建容器java运行环境

voyage1314
 voyage1314
发布于 2013/12/17 19:11
字数 1224
阅读 3387
收藏 84
点赞 10
评论 7

step1:安装lxc

sudo apt-get install lxc

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

step2: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,所有应用的容器几乎都是相同的配置,所以克隆不仅节省时间还省去大量配置的繁琐

step3:检验lxc是否已安装好

lxc-verison

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

lxc-checkconfig

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

step4:创建第一个容器master

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

sudo lxc-create -t ubuntu -n master

-t : 创建的虚拟机模板名称,默认为ubuntu 12.04最小安装版,非常小

-n : 创建的虚拟名称,需要指定
  
-f : 指定配置文件  

-B : 虚拟机磁盘的系统,为了控制单个虚拟机的磁盘容量限制。

--lvname :虚拟机使用卷名,默认使用虚拟机名 
 
--vgname :卷组名称,这个一定要有,默认名称为lxc,可以单独指定。
          若不指定此选项,则要求名称为lxc的卷组已经存在,否则,请指定已经卷组名

--fstype :文件系统类型,默认为ext4类型  

--fssize :磁盘容量,默认为1G,单个应用所占有磁盘空间,一般安装之后,除了系统文件等,也就剩下500M作用可以使用。

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

sudo lxc-start -n master -d
sudo lxc-console -n master

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

退出控制台【ctrl+a q】

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

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

新建文件夹

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

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

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

配置环境变量:

sudo vim /etc/profile

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

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

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

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

source /etc/profile

检验是否生效

echo $PATH

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

启动tomcat

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

顺便看看8080端口开启没

netstat -nl | grep 8080


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

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





© 著作权归作者所有

共有 人打赏支持
voyage1314
粉丝 7
博文 9
码字总数 6947
作品 0
杨浦
程序员
加载中

评论(7)

netkiller-
netkiller-
不错,有时间研究一下
Neo
Neo

引用来自“neo-chen”的评论

不太理解他的功能,跟 chroot 有相同之处??好像类似 jail(FreeBSD)

没错,lxc跟jail是很像,不过lxc共用的东西更多,jail貌似连内核也可以虚拟化,但是lxc要共用系统内核
小鸽子咕噜
小鸽子咕噜
直接docker就可以啊,都是用的lxc,cgroup
guardamo
guardamo
有点搞不懂,为什么不用jvm,而自己搭容器呢?
netkiller-
netkiller-
不太理解他的功能,跟 chroot 有相同之处??好像类似 jail(FreeBSD)
动弹
动弹
docker 可以简化过程
jingdor
jingdor
安装 http://lxc-webpanel.github.io/ 图形化配置 lxc
Ubuntu下搭建JAVA运行环境

(一)Linux操作系统安装(详细信息参见:http://my.oschina.net/u/1458864/blog/366665) 1.安装Oracle VM VirtualBox 2.安装vagrant 3.下载box 4.vagrant添加box到虚拟机中(http://my.osch...

飓风2000
2015/01/27
0
2
使用Docker在本地搭建Hadoop分布式集群

学习Hadoop集群环境搭建是Hadoop入门必经之路。搭建分布式集群通常有两个办法: 要么找多台机器来部署(常常找不到机器) 或者在本地开多个虚拟机(开销很大,对宿主机器性能要求高,光是安装...

Carl_
2015/07/24
0
2
几步搭建基于Docker的Tomcat运行环境!

Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序,并通过配置文件可以轻松实现应用程序的自动化安装、部署和升级,非...

技术小能手
06/08
0
0
Docker搭建Hadoop集群

在学习Hadoop过程中,想要搭建Hadoop分布式集群,往往需要几台服务器或者再一台机器上搭建几台虚拟机;这两种方式搭建Hadoop集群都不是很方便,个人很少自己拥有几台服务器,或者电脑内存够大...

凌得涂
05/15
0
0
Hinernate中获得数据库连接池的方式及应用

Hibernate可以与任何一种java应用的运行环境集成。Java应用的运行环境可分为两种。 (1)受管理环境(Managed environment):由容器负责管理各种共享资源(如线程池和数据库连接池),以及管理...

_守望者_
2014/04/22
0
0
使用 Docker 一步搞定 ZooKeeper 集群的搭建

ZooKeeper为分布式应用提供高效、高可用的分布式协调服务,它有三种运行模式:单机模式、伪集群模式和集群模式。本文通过探索ZooKeeper的官方Docker镜像,来看看怎样快速搭建一个ZooKeeper的...

qq_41587243
05/25
0
0
加强Docker容器与Java 10集成

很多运行在Java虚拟机(JVM)中的应用,包括数据服务如Apache Spark和Kafka以及传统企业应用,都运行在容器中。最近,运行在容器里的JVM出现了由于内存和CPU资源限制和使用率导致性能损失问题...

java高级架构牛人
06/04
0
0
J2EE中一些常用的名词【简】

web容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接更容器中的环境变量接口交互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,W...

anlve
06/18
0
0
使用Docker运行Java应用程序

使用Docker运行Java应用程序 部署软件混乱; 需要克服许多问题才能生成顺畅且无痛的部署过程。诸如环境设置,依赖性地狱,编排管理以及系统可用性等问题是部署新应用程序时遇到的许多问题中的...

优惠券发放
05/30
0
0
黑马程序员.bobo.DAY.1

C:Program Files (x86)NVIDIA CorporationPhysXCommon;<span style="background:rgb(255,0,0)">%JAVA8HOME%bin;%JAVA8HOME%jrebin;</span>D:oracleproduct10.2.0db_1bin;C:Program Files (x8......

BobbyLou
2015/05/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

百度云iOS架构师在职场中的忠告

1.工具不能代替思考 在我多年的咨询工作和与许多组织和管理者的共事中,我发现了修复问题的共同套路,那就是管理人员相信工具可以“解决”给出的问题。当问题域被理解透彻,并且不可能有很多...

_小迷糊
19分钟前
0
0
Java基础——异常

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 异常处理: 可以挖很多个陷阱,但是不要都是一样...

凯哥学堂
31分钟前
0
0
180723-Quick-Task 动态脚本支持框架之结构设计篇

文章链接:https://liuyueyi.github.io/hexblog/2018/07/23/180723-Quick-Task-动态脚本支持框架之结构设计篇/ Quick-Task 动态脚本支持框架之结构设计篇 相关博文: 180702-QuickTask动态脚本...

小灰灰Blog
35分钟前
0
0
SBT 常用开发技巧

SBT 一直以来都是 Scala 开发者不可言说的痛,最主要的原因就是官方文档维护质量较差,没有经过系统的、循序渐进式的整理,导致初学者入门门槛较高。虽然也有其它构建工具可以选择(例如 Mill...

joymufeng
39分钟前
0
0
HBase in Practice - 性能、监控及问题解决

李钰(社区ID:Yu Li),阿里巴巴计算平台事业部高级技术专家,HBase开源社区PMC&committer。开源技术爱好者,主要关注分布式系统设计、大数据基础平台建设等领域。连续4年基于HBase/HDFS设计和...

中国HBase技术社区
40分钟前
1
0
ES18-JAVA API 批量操作

1.批量查询 Multi Get API public static void multiGet() {// 批量查询MultiGetResponse response = getClient().prepareMultiGet().add("my_person", "my_index", "1")// 查......

贾峰uk
45分钟前
0
0
SpringBoot2.0使用health

1,引入actuator <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency> 2,application.properties ......

暗中观察
52分钟前
0
0
阿里巴巴Java开发规约

###编程规约 命名风格 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束 【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。...

简心
56分钟前
0
0
如何用TypeScript来创建一个简单的Web应用

转载地址 如何用TypeScript来创建一个简单的Web应用 安装TypeScript 获取TypeScript工具的方式: 通过npm(Node.js包管理器) npm install -g typescript 构建你的第一个TypeScript文件 创建...

durban
今天
0
0
分享好友,朋友圈自定义分享链接无效

这个问题是微信6.5.6版本以后,修改了分享规则:分享的连接必须在公众号后台设定的js安全域名内

LM_Mike
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部