1. 程式人生 > >使用centos7搭建java web執行環境

使用centos7搭建java web執行環境

1:前提條件

預設要求是核心版本高於3.8

CentOS7系統,核心版本3.10

可以使用 uname -r  命令來看輸出的核心資訊

2:安裝Docker

yum install docker

docker version

若輸出了 Docker 的版本號,則說明安裝成功。

3:啟動Docker

安裝完成後,使用下面的命令來啟動 docker 服務,並將其設定為開機啟動:

[[email protected] ~]# systemctl start  docker.service

[[email protected] ~]# chkconfig docker on

chkconfig docker on                            # 加入開機啟動

重啟docker

systemctl restart docker

停止docker

service docker stop或者systemctl stop  docker.service

看docker狀態

systemctl status docker.service

4:下載官方的 CentOS 映象到本地

[[email protected] ~]# docker pull centos

5:確認 CentOS 映象已經被獲取:

[

[email protected] ~]# docker images centos

6:執行一個 Docker 容器

7:退出容器

輸入 exit就好了。

1:開始檢視映象

二:在容器中搭建javaweb執行環境

1:使用以下命令即可啟動容器

docker run -i -t --privileged=true -v /root/software/:/mnt/software/ 67591570dd29 /bin/bash

這個67591570dd29是當時的centos的id

所有安裝程式都放在了宿主機的/root/software/目錄下,現在需要將其掛載到容器的/mnt/software/目錄下。

2:安裝jdk和tomcat環境

cd /mnt/software


tar -xvf jdk-7u67-linux-x64.tar.gz (這裡是你自己的JDK版本)
tar -xvf apache-tomcat-7.0.72.tar.gz  (這裡是你的Tomcat版本)


cd ../..
mv /mnt/software/jdk1.8.0_111 /opt/jdk/

mv /mnt/software/apache-tomcat-8.5.9 /opt/tomcat/

3:編寫執行指令碼

在容器裡面

cd /root

編寫執行指令碼,當啟動容器的時候,啟動tomcat .

touch run.sh (run.sh是在root目錄下)
vi /root/run.sh

指令碼內容:

#!/bin/bash
export JAVA_HOME=/opt/jdk/
export PATH=$JAVA_HOME/bin:$PATH
sh /opt/tomcat/bin/catalina.sh run

指令碼編寫完後,新增執行許可權

chmod u+x /root/run.sh

4、退出容器
執行exit 退出容器 。 檢視當前所有容器

docker ps -a

5:建立tomcat 映象
根據上面的容器 id 建立tomcat 映象 。

docker commit 6e56de1e8ccd xulei/javaweb:0.1

該容器的 ID 是“57c312bbaad1”,所建立的映象名是“xulei/javaweb:0.1”,隨後可使用映象來啟動 Java Web 容器

6:在宿主機webapps裡面放入war包

或者是在:新建 /root/webapps/ROOT/index.html

<html>

<body>

<h2>Hello World!</h2>

</body>

</html>

6:啟動javaweb容器

docker run -d -p 58080:8080 -v /root/webapps:/opt/tomcat/webapps --privileged=true --name javaweb xulei/javaweb:0.1 /root/run.sh

7:訪問測試

8:進入容器

Docker exec –I t javaweb/bin/sh

常見錯誤:

1:沒有許可權  掛載目錄無法讀取

這個是原因是CentOS7中的安全模組selinux把許可權禁掉了,至少有以下三種方式解決掛載的目錄沒有許可權的問題:
   1.在執行容器的時候,給容器加特權,及加上 --privileged=true 引數:
   docker run -i -t -v /soft:/soft --privileged=true 686672a1d0cc /bin/bash
   2.臨時關閉selinux:
   setenforce 0
   3.新增selinux規則,改變要掛載的目錄的安全性文字
/etc/sysconfig/selinux

2:過段時間後開啟58080頁面沒反應

可以重啟docker

systemctl restart docker