docker環境搭建centos+jdk+tomcat_CENTOS篇


前言

(1)寫在前面的話,鑒於在linux或類unix系統中安裝jdk+tomcat等環境,沒有什么經驗,所以選擇在docker容器中安裝之,以防止安裝失敗無法恢復系統

(2)需要下載對應的系統的docker鏡像,如:centos、Ubuntu等

(3)本文並未沒有docker安裝所需的相關環境說明,可自行查看官網並安裝之,此處略

1、下載CENTOS的docker鏡像

鏡像下載地址DaoCloud

[root@izwz99jhv6u546yu27nrwdz downloads]# docker pull centos 略

下載完成后,查看已下載的鏡像如下:即centos

[root@izwz99jhv6u546yu27nrwdz downloads]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE richarvey/nginx-php-fpm latest b45e0c814c3f 4 days ago 269 MB golang latest 7afbc2b03b9e 2 weeks ago 675 MB daocloud.io/library/nginx latest cc1b61406712 3 weeks ago 182 MB nginx latest cc1b61406712 3 weeks ago 182 MB php 7-fpm 65ec79b1c89d 3 weeks ago 377 MB php latest 608e59384e11 3 weeks ago 364 MB daocloud.io/library/ubuntu latest f49eec89601e 3 weeks ago 129 MB centos latest 67591570dd29 2 months ago 192 MB

2、進入鏡像centos進行相關操作

(1)一些必要的准備比如:安裝vim、新建需要的一些目錄等

[root@izwz99jhv6u546yu27nrwdz downloads]# docker run -it centos /bin/bash [root@92896fb7e091 /]# yum install vim* ...(此處省略n行)... Complete! #說明vim安裝成功了 [root@92896fb7e091 /]# mkdir -p /home/wangjie #說明-弄個目錄留下面掛載用 備注:此時需要記住此時的容器ID即92896fb7e091,2中備份需要

(2)備份上面對鏡像的修改

[root@92896fb7e091 bin]# exit exit [root@izwz99jhv6u546yu27nrwdz ~]# docker commit -m "Added vim_lrzsz_wangjie" -a "Docker Newbee" 92896fb7e091 centos_vim_lrzsz //其中: -m 來指定提交的說明信息,跟我們使用的版本控制工具一樣; -a 可以指定更新的用戶信息; 92896fb7e091 是用來創建鏡像的容器的 ID; centos_vim_lrzsz是指定目標鏡像的倉庫名(centos_vim_lrzsz) 創建成功后會返回新鏡像的 ID: sha256:6ddbdb552b7db7f6cffdba3612664dc9bd25715e079aecefd98d5451ffb8ca35 [root@izwz99jhv6u546yu27nrwdz ~]# docker images [root@izwz99jhv6u546yu27nrwdz webapps]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos_vim_lrzsz latest 89796a5c0215 2 hours ago 362 MB

3、在宿主機弄個目錄用於被掛載即對應1中容器的目錄

[root@izwz99jhv6u546yu27nrwdz ~]# mkdir -p /home/wangjie/tomcat8 [root@izwz99jhv6u546yu27nrwdz ~]# cd /home/wangjie/tomcat8 通過rz上傳已下載的jdk文件和tomcat到這個目錄下,此處我用的是tomcat-8.0.24和jdk-8u91-linux-x64,各位看官可以換成你想要的其他版本。 [root@izwz99jhv6u546yu27nrwdz tomcat8]# ll total 186028 -rw-r--r-- 1 root root 9106353 Aug 25 14:47 apache-tomcat-8.0.24.tar.gz -rw-r--r-- 1 root root 181367942 May 5 2016 jdk-8u91-linux-x64.gz

4、再次進入新容器進行相關操作

(1)啟動並將宿主機目錄/home/wangjie/tomcat8掛載到容器中的目錄/home/wangjie下

[root@izwz99jhv6u546yu27nrwdz tomcat8]# docker run -i -t -v /home/wangjie/tomcat8:/home/wangjie 89796a /bin/bash
//其中: -i 表示以"交互模式"運行容器 -t 表示容器啟動后會進入其命令行 -v 表示需要將本地哪個目錄掛載到容器中,格式:-v <宿主機絕對目錄>:<容器絕對目錄> 89796a 即2中新容器的ID,也可以用"容器名:TAG"唯一即可  /bin/bash 即進入容器后的bash shell命令行對應-t [root@0bfc23706742 /]# 

(2)在容器中安裝jdk和tomcat

[root@0bfc23706742 /]# mkdir -p /opt/tomcat/ //新建一個目錄用於安裝tomcat [root@0bfc23706742 /]# mkdir -p /opt/jdk/ //新建一個目錄用於安裝jdk [root@0bfc23706742 /]# cd /home/wangjie //切到掛載目錄下並查看文件 [root@0bfc23706742 wangjie]# ls apache-tomcat-8.0.24.tar.gz jdk-8u91-linux-x64.gz //即宿主機目錄/home/wangjie/tomcat8中的文件 [root@0bfc23706742 wangjie]# tar -zxf apache-tomcat-8.0.24.tar.gz -C . //tomcat解壓后移動之 [root@0bfc23706742 wangjie]# mv apache-tomcat-8.0.24/ /opt/tomcat/ [root@0bfc23706742 wangjie]# cd /opt/tomcat/ [root@000308aec801 tomcat]# ll total 4 drwxr-xr-x 9 root root 4096 Feb 22 02:18 apache-tomcat-8.0.24 [root@0bfc23706742 wangjie]# tar -zxf jdk-8u91-linux-x64.gz -C . //jdk解壓后移動之 [root@0bfc23706742 wangjie]# mv jdk-8u91-linux-x64/ /opt/jdk/ [root@0bfc23706742 wangjie]# cd /opt/jdk/ [root@000308aec801 jdk]# ll total 4 drwxr-xr-x 8 10 143 4096 Apr 1 2016 jdk1.8.0_91

(3)編寫運行腳本

當容器運行時,運行該腳本,啟動tomcat
[root@0bfc23706742 wangjie]# mkdir -p /root/run.sh [root@0bfc23706742 wangjie]# vim /root/run.sh #!/bin/bash export JAVA_HOME=/opt/jdk/jdk1.8.0_91 export PATH=$JAVA_HOME/bin:$PATH sh /opt/tomcat/apache-tomcat-8.0.24/bin/catalina.sh run 修改腳本執行權限 [root@0bfc23706742 wangjie]# chmod u+x /root/run.sh

(4)相關操作后…exit。參考2中的備份,再次新建一個容器即可運行tomcat的容器

[root@0bfc23706742 wangjie]# exit //[root@izwz99jhv6u546yu27nrwdz tomcat8]# docker commit -m "Added jdk_tomcat" -a "Docker Newbee" 0bfc23706742 centos_jdk_tomcat 此處,為了演示,新增個測試用的新容器 [root@izwz99jhv6u546yu27nrwdz tomcat8]# docker commit 0bfc23706742 test_tomcat:1.0 [root@izwz99jhv6u546yu27nrwdz tomcat8]# docker images 可以查看所有新增的鏡像 REPOSITORY TAG IMAGE ID CREATED SIZE test_tomcat 1.0 80f2fd55c5a0 2 hours ago 740 MB centos_jdk_tomcat latest 38ac50abc54b 2 hours ago 740 MB [root@izwz99jhv6u546yu27nrwdz tomcat8]# docker ps 可以看到沒有任何正在運行的容器--因為exit的容器都是停止的 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@izwz99jhv6u546yu27nrwdz tomcat8]# docker ps -a 可以查看所有已新增的容器(運行的或已停止的) CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b44d32861981 test_tomcat:1.0 "/root/run.sh" 2 hours ago Exited (137) 51 minutes ago test_tomcat_1 0bfc23706742 89796a "/bin/bash" 2 hours ago Exited (0) 2 hours ago quirky_shaw 92896fb7e091 centos_vim_lrzsz:v1 "/bin/bash" 3 hours ago Exited (0) 3 hours ago practical_meitner

5、在宿主機准備項目文件,並掛載到docker環境並啟動

[root@izwz99jhv6u546yu27nrwdz tomcat8]# mkdir webapps [root@izwz99jhv6u546yu27nrwdz tomcat8]# cd webapps //rz上傳項目代碼,以jenkins.war為例 [root@izwz99jhv6u546yu27nrwdz webapps]# ll total 81140 -rw-r--r-- 1 root root 69874457 Feb 22 10:57 jenkins.war

一切就緒,開始運行tomcat服務

[root@izwz99jhv6u546yu27nrwdz webapps]# docker run -d -p 58080:8080 -v /home/wangjie/tomcat8/webapps/:/opt/tomcat/apache-tomcat-8.0.24/webapps/ --name test_tomcat_1 test_tomcat:1.0 /root/run.sh
//其中: -v 略,如前所述說 -d 表示以"守護模式"執行/root/run.sh腳本,此時 Tomcat 控制台不會出現在輸出終端上 -p 表示宿主機與容器的端口映射,此時將容器內部的8080端口映射為宿主機的58080端口,這樣就向外界暴露了58080端口,可通過Docker網橋來訪問容器內部的8080端口了 --name 表示容器名稱,用一個你覺得有意義的名稱命名即可 test_tomcat:1.0 即新容器名:TAG  /root/run.sh 即需要執行的腳本 [root@izwz99jhv6u546yu27nrwdz tomcat8]# docker ps 可以看到正在運行的容器了

當然你可能會問容器中的tomcat正常啟動了嗎?日志怎么看?

[root@izwz99jhv6u546yu27nrwdz webapps]# docker logs e25a7d9f4506 說明:docker logs [正在運行的容器ID] ...(此處省略n行 容器中的tomcat運行日志)...

6、打開瀏覽器訪問之

  • (1). 訪問-http://120.77.207.178:58080/jenkins 
    可以正常進入初始頁面了. 
    jenkins
  • (2). 此時可能第一個頁面需要初始化admin的密碼(如上圖),密碼從哪來呢? 
    從第5步中的日志中可以看到,復制出來放到頁面中即可
  • (3). jenkins此處不再贅述。。。

7、其他:

疑問:”以上docker鏡像只裝了jdk和tomcat,如果有的項目(war包)需要連接數據庫(比如:mysql),或還需要PHP、python、apache服務怎么辦?”

答復:接上面已經新建的容器繼續添加相關服務器即可,當然也可以不都安裝在一個鏡像中,,可以外接單獨的鏡像,比如:mysql鏡像,然后和上面的鏡像進行組裝。。。。 
待嘗試。。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM