docker部署javaweb環境
linux系統:centos7.3
docker安裝參考
https://www.cnblogs.com/yufeng218/p/8370670.html
http://www.runoob.com/docker/centos-docker-install.html
下面地址為 linux版本jdk1.8和tomcat8
連結:https://pan.baidu.com/s/18NV-I0_QEWQ4i1Dimvg62w
提取碼:0x9u
安裝rz上傳軟體包
rz參考 https://blog.csdn.net/fireblue1990/article/details/74147190
1、下載CENTOS的docker映象
[[email protected] downloads]# docker pull centos
略
下載完成後,檢視已下載的映象如下:即centos
2、進入映象centos進行相關操作
我的軟體包路徑地址
(1)啟動並將宿主機目錄/home/掛載到容器中的目錄/home/jun下
docker run -i -t -v /home/:/home/jun centos /bin/bash //其中: -i 表示以"互動模式"執行容器 -t 表示容器啟動後會進入其命令列 -v 表示需要將本地哪個目錄掛載到容器中,格式:-v <宿主機絕對目錄>:<容器絕對目錄> 89796a 即2中新容器的ID,也可以用"容器名:TAG"唯一即可 /bin/bash 即進入容器後的bash shell命令列對應-t
(2)在容器中安裝jdk和tomcat
[[email protected] jun]# mkdir -p /opt/tomcat/
//建立tomcat目錄
[[email protected] jun]# mkdir -p /opt/jdk/
//建立jdk目錄
[[email protected] jun]# tar -zxf apache-tomcat-8.0.53.tar.gz
//解壓
[[email protected] jun]# tar -zxf jdk-8u191-linux-x64.tar.gz
//解壓
[[email protected] jun]# ls
apache-tomcat-8.0.53 apache-tomcat-8.0.53-deployer.tar.gz apache-tomcat-8.0.53.tar.gz jdk-8u191-linux-x64.tar.gz jdk1.8.0_191
[[email protected] jun]# mv apache-tomcat-8.0.53/ /opt/tomcat/
//移動
[[email protected] tomcat]# mv jdk1.8.0_191/ /opt/jdk/
//移動
(3)配置容器啟動環境變數
設定容器啟動時載入的環境變數
1、設定環境變數
首先,編輯.bashrc檔案
vi ~/.bashrc
然後,在該檔案末尾新增如下配置:
export JAVA_HOME=/opt/jdk/jdk1.8.0_191
export JRE_HOME=/opt/jdk/jdk1.8.0_191/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
最後,需要使用source命令,讓環境變數生效:
source ~/.bashrc
2、編寫執行指令碼
我們需要編寫一個執行指令碼,當啟動容器時,執行該指令碼,啟動 Tomcat,具體過程如下:
首先,建立執行指令碼:
vi /root/run.sh
然後,編輯指令碼內容如下:
#!/bin/bash
source ~/.bashrc
sh /opt/tomcat/apache-tomcat-8.0.53/bin/catalina.sh run
注意:這裡必須先載入環境變數,然後使用 Tomcat 的執行指令碼來啟動 Tomcat 服務。
最後,為執行指令碼新增執行許可權:
chmod u+x /root/run.sh
退出容器
當以上步驟全部完成後,可使用exit或ctrl+d命令,退出容器。
隨後,可使用如下命令檢視正在執行的容器:
docker ps
此時,您應該看不到任何正在執行的程式,因為剛才已經使用exit命令退出的容器,此時容器處於停止狀態,可使用如下命令檢視所有容器:
docker ps -a
3.建立映象並啟動
建立映象
docker commit 7jkj9899749e jun_javaweb:1.1
該容器的 ID 是“7jkj9899749e”,所建立的映象名是“jun_javaweb:1.1”,隨後可使用映象來啟動 Java Web 容器。
啟動
docker run -d -p 8080:8080 --name javaweb jun_javaweb:1.1/root/run.sh
-d:表示以“守護模式”執行/root/run.sh指令碼,此時 Tomcat 控制檯不會出現在輸出終端上。
-p:表示宿主機與容器的埠對映,此時將容器內部的 8080 埠對映為宿主機的 8080 埠,這樣就向外界暴露了 8080 埠,可通過 Docker 網橋來訪問容器內部的 8080 埠了。
--name:表示容器名稱,用一個有意義的名稱命名即可。
檢視啟動的容器
Docker 容器映象刪除
1.停止所有的container,這樣才能夠刪除其中的images:
docker stop $(docker ps -a -q)
如果想要刪除所有container的話再加一個指令:
docker rm $(docker ps -a -q)
2.檢視當前有些什麼images
docker images
3.刪除images,通過image的id來指定刪除誰
docker rmi <image id>
想要刪除untagged images,也就是那些id為<None>的image的話可以用
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
要刪除全部image的話
docker rmi $(docker images -q)