使用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 映象已經被獲取:
[
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 映象 。
dockercommit 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