在Ubuntu 13.04上通過(guò)lxc搭建容器java運(yùn)行環(huán)境
step 1:安裝lxc
- sudo apt-get install lxc
說(shuō)明:由于在ubuntu中通過(guò)apt-get安裝lxc會(huì)自動(dòng)安裝lxc依賴的其他軟件,debootstrap,lvm2,cgroup-lite等。
step 2:lxc宿主主機(jī)配置
首先介紹幾個(gè)文件夾(默認(rèn)通過(guò)apt-get安裝將自動(dòng)生成以下文件/文件夾)
1. /etc/lxc/default.conf
創(chuàng)建容器時(shí)若未指定配置文件,則默認(rèn)使用這個(gè)default.conf作為該容器的配置文件
2. /usr/share/lxc/templates/
該目錄下保存了LXC支持的各種發(fā)行版的linux模板,通常有:
3. /var/lib/lxc/
這個(gè)目錄是用來(lái)存放容器實(shí)例的,默認(rèn)情況下該文件夾只有管理員才有權(quán)限訪問(wèn)讀寫(xiě)其中文件
4. /var/cache/lxc/
第一次創(chuàng)建容器,需要下載一個(gè)mini版的容器系統(tǒng),會(huì)花很長(zhǎng)時(shí)間,創(chuàng)建好后,將會(huì)在該目錄下創(chuàng)建緩存,再次創(chuàng)建直接采用緩存無(wú)須再網(wǎng)上下載,對(duì)于我的需求,我比較喜歡用lxc-clone,所有應(yīng)用的容器幾乎都是相同的配置,所以克隆不僅節(jié)省時(shí)間還省去大量配置的繁瑣
step 3:檢驗(yàn)lxc是否已安裝好
- lxc-verison
如果顯示 lxc version: x.x.x表示安裝成功。這里x表示版本號(hào),我安裝的是lxc version:0.9.0
- lxc-checkconfig
按理說(shuō)所有選項(xiàng)都應(yīng)該是enable,但是User namespace:missing,別捉急,這影響不大。有人說(shuō)是內(nèi)核配置的問(wèn)題,有人說(shuō)只在ubuntu32位系統(tǒng)出現(xiàn)。下面這段話是一個(gè)外國(guó)博友寫(xiě)的:
step 4:創(chuàng)建第一個(gè)容器master
創(chuàng)建一個(gè)名為master的容器,采用ubuntu作為模板。注意這里別忘了加sudo,不然會(huì)報(bào)錯(cuò)的
- sudo lxc-create -t ubuntu -n master
- -t : 創(chuàng)建的虛擬機(jī)模板名稱,默認(rèn)為ubuntu 12.04最小安裝版,非常小
- -n : 創(chuàng)建的虛擬名稱,需要指定
- -f : 指定配置文件
- -B : 虛擬機(jī)磁盤(pán)的系統(tǒng),為了控制單個(gè)虛擬機(jī)的磁盤(pán)容量限制。
- --lvname :虛擬機(jī)使用卷名,默認(rèn)使用虛擬機(jī)名
- --vgname :卷組名稱,這個(gè)一定要有,默認(rèn)名稱為lxc,可以單獨(dú)指定。
- 若不指定此選項(xiàng),則要求名稱為lxc的卷組已經(jīng)存在,否則,請(qǐng)指定已經(jīng)卷組名
- --fstype :文件系統(tǒng)類型,默認(rèn)為ext4類型
- --fssize :磁盤(pán)容量,默認(rèn)為1G,單個(gè)應(yīng)用所占有磁盤(pán)空間,一般安裝之后,除了系統(tǒng)文件等,也就剩下500M作用可以使用。
第一次創(chuàng)建會(huì)花一些時(shí)間,創(chuàng)建完成后,會(huì)提示創(chuàng)建成功,默認(rèn)的用戶名和密碼都是ubuntu
- sudo lxc-start -n master -d
- sudo lxc-console -n master
以守護(hù)進(jìn)程開(kāi)啟master容器,然后進(jìn)入控制臺(tái),輸入用戶名和密碼ubuntu,現(xiàn)在看到的目錄是這個(gè)容器的目錄,無(wú)法訪問(wèn)宿主主機(jī)的目錄,對(duì)于用戶來(lái)說(shuō)相當(dāng)于是一臺(tái)完整的服務(wù)器。
退出控制臺(tái)【ctrl+a q】
step 5:在容器中搭建java環(huán)境:jdk+tomcat
首先去官網(wǎng)下好jdk和tomcat和你自己系統(tǒng)對(duì)應(yīng)的版本,我這里是jdk1.7.0_45.zip和apache-tomcat-8.0.0-RC5.tar.gz
新建文件夾
- mkdir /var/lib/lxc/master/rootfs/usr/local/java
移動(dòng)上面兩個(gè)文件到j(luò)ava目錄下并解壓,tomcat文件夾重命名為tomcat。注意解壓的時(shí)候可能有權(quán)限問(wèn)題,使用sudo chmod -R 755 filename修改文件權(quán)限。
接下來(lái)的配置都是在容器中進(jìn)行,命令行進(jìn)入容器控制臺(tái)。
配置環(huán)境變量:
- sudo vim /etc/profile
在最后加上你的jre的路徑,tomcat的路徑等
比如我的是在/usr/local/java/jdk1.7.0_45,/usr/local/java/tomcat,這里的根目錄是容器的根目錄,所以環(huán)境變量配置為:
- 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
退出保存,執(zhí)行以下命令生效
- source /etc/profile
檢驗(yàn)是否生效
- echo $PATH
如果輸出你的jdk路徑表示已生效
啟動(dòng)tomcat
- sh /usr/local/tomcat/bin/startup.sh
順便看看8080端口開(kāi)啟沒(méi)
- netstat -nl | grep 8080
輸入網(wǎng)址:http://localhost:8080
如果出現(xiàn)tomcat的歡迎頁(yè)面,大功告成。