在Ubuntu 13.04上通過lxc搭建容器java運行環境
step 1:安裝lxc
- 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是否已安裝好
- lxc-verison
如果顯示 lxc version: x.x.x表示安裝成功。這里x表示版本號,我安裝的是lxc version:0.9.0
- lxc-checkconfig
按理說所有選項都應該是enable,但是User namespace:missing,別捉急,這影響不大。有人說是內核配置的問題,有人說只在ubuntu32位系統出現。下面這段話是一個外國博友寫的:
step 4:創建第一個容器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】
step 5:在容器中搭建java環境:jdk+tomcat
首先去官網下好jdk和tomcat和你自己系統對應的版本,我這里是jdk1.7.0_45.zip和apache-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
如果出現tomcat的歡迎頁面,大功告成。