Docker安裝Tomcat映象並部署web專案
一、安裝Tomcat
1、查詢Docker Hub上的tomcat映象
docker search tomcat
2、拉取官方的映象
docker pull tomcat
等待下載完畢,需要一些時間。
3、檢視docker所有的映象
docker images
4、啟動tomcat映象
注:前者是外圍訪問埠:後者是容器內部埠
docker run -d -p 8080:8080 tomcat
注:前者是外圍訪問埠:後者是容器內部埠
如下命令可後臺啟動tomcat
-d: 後臺執行容器,並返回容器ID;
-i: 以互動模式執行容器,通常與 -t 同時使用;
-t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;
docker run –d -p 8080:8080 tomcat
如下則啟動成功:
5、檢視正在執行的容器
docker ps
輸入ip和埠即可檢視tomcat主頁:
二、向Tomcat部署自己的web專案
1、上傳war包
2、建立並編輯”Dockerfile”,內容如下:
from tomcat #你的 tomcat的映象
MAINTAINER *********@163.com #作者
RUN rm -rf /usr/local/tomcat/webapps/*
COPY button.war /usr/local/tomcat/webapps #放置到tomcat的webapps目錄下
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
3、生成新的映象
docker build -t button:v1 .
4、啟動新的映象
docker run -d -p 8080:8080 button:v1
5、檢視已啟動映象
可以加上引數-itd後臺啟動tomcat,用以下方式檢視已啟動的映象
docker ps
6、檢視tomcat中的專案
可以使用如下命令進入tomcat映象:
docker exec -it ***** ** /bin/bash #******是容器id(CONTAINER_ID)
當我們進入映象後,想對某些引數進行修改時,一般需要安裝文字編輯器,以vim為例:
由於下載地址是海外地址,下載速度非常慢而且可能出現中斷,所以做如下配置:
mv /etc/apt/sources.list /etc/apt/sources.list.bak
echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >/etc/apt/sources.list
echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
然後更新
apt update
現在就可以安裝我們需要的軟體了,例如vim
apt install vim
7、輸入ip和埠進行檢視
8、可以檢視指定容器的log
docker logs -f 容器id
9、部署web專案後也許會出現docker容器與宿主、docker 容器與tomcat 應用列印日誌時間和我們當前時間相差8個小時,可以新增如下配置:
①啟動容器時,將系統時間掛載到容器內,可以解決docker容器與宿主時間不一致問題,如下所示:
新增引數
-v /etc/localtime:/etc/localtime:ro
完整命令如下示例:
sudo docker run -d --name button-api -p 8080:8080 -v /etc/localtime:/etc/localtime:ro button-api:v1
②docker 容器與tomcat 應用列印日誌時間不一致
啟動tomcat容器後進入tomcat的”bin”目錄,修改catalina.sh檔案
在註釋結束的第一行新增如下內容:
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=GMT+08"
如下圖所示:
修改儲存後重啟docker容器就可以了。
重啟方法:
“docker ps”查詢容器id,使用如下命令重啟:
docker restart 容器id
到此即可解決該問題。