1. 程式人生 > >基於CentOS7將JavaWeb專案生成docker映象

基於CentOS7將JavaWeb專案生成docker映象

近段時間接觸docker,嘗試著將javaweb專案做成一個docker映象,下面具體說明生成步驟,如有不足,希望能在後續的學習中查漏補缺。
一 前提
關於docker環境的搭建這裡不再贅述,網上也有很多教程,值的一提的是centos7版本,Docker 軟體包已經包括在預設的 CentOS-Extras 軟體源裡,可以直接yum安裝

# yum install docker

二 總體思路
拉取centos基礎映象->生成容器->在容器中搭建java環境->安裝tomcat
->將web專案打成war包->將war包放到tomcat的webapps下面->啟動tomcat服務->測試是否能夠訪問->將容器做成映象

三 詳細操作
1,拉取centos基礎映象

# docker pull centos

2,檢視映象

# docker images

3,在本地準備好tomcat和jdk安裝包

#cd /root/software/
#wget http://zhibo100.oss-cn-hangzhou.aliyuncs.com/software/jdk-7u79-linux-x64.tar.gz
#wget http://zhibo100.oss-cn-hangzhou.aliyuncs.com/software/apache-tomcat-7.0.59.tar.gz

(本次安裝基於tomcat 7.0 和jdk1.7)
4,用映象啟一個容器
通過命令檢視映象名

# docker images

通過映象名(有版本號時需要加上版本號喲)啟容器

# docker run -i -t 映象名:版本號 /bin/bash

額外的,這裡插入說明一些容器的常見操作

檢視正在執行的容器
# docker ps
檢視所有容器
# docker ps -a
進入容器方式1
# docker exec -it 容器ID /bin/bash
進入容器方式2
# docker attach 容器ID
停止容器
# docker stop 容器ID
開始容器
# docker start 容器ID
刪除容器
# docker rm 容器ID (刪除前要先停止)

5,退出容器

# exit

6,將第3步準備好的包拷貝到容器中

# docker cp /root/jdk-7u79-linux-x64.tar.gz 容器ID:/mnt/software/

7,進入容器

# docker exec -it 容器ID /bin/bash

8,進入到/mnt/software/下解壓jdk和tomcat並將其移動到/opt/目錄下

# cd /mnt/software/
# tar -zxvf jdk-7u79-linux-x64.tar.gz
# tar -zxvf apache-tomcat-7.0.59.tar.gz
# mv jdk1.7.0_79/ /opt/jdk
# mv apache-tomcat-7.0.59 /opt/tomcat

9,配置JAVA環境變數並檢測

# vi ~/.bashrc

在檔案末尾加上

export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

儲存退出

# source ~/.bashrc
# java -version

10,編寫系統啟動指令碼並賦予許可權

# vi /root/run.sh

加入以下程式碼

#!/bin/bash
source ~/.bashrc
sh /opt/tomcat/bin/catalina.sh run

# chmod u+x /root/run.sh

11,將我們的web專案打成war包,並cp進容器,並且將tomcat的
webapps目錄下的東西刪除掉,將war包放進去

12,退出容器

# exit

13,根據當前的容器ID建立新的映象

# docker ps -a
# docker commit 容器ID 新生成的映象名:映象版本號
# docker images

14,以守護程序方式啟動新的映象並傳入啟動引數

docker run -d -p 58080:8080 --name 容器名 映象名:版本 /root/run.sh