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
MAINTAINER *********@163.com 
RUN rm -rf /usr/local/tomcat/webapps/*
COPY button.war   /usr/local/tomcat/webapps
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

說明:

from tomcat    #你的 tomcat的鏡像
MAINTAINER *********@163.com    #作者
COPY button.war   /usr/local/tomcat/webapps  #放置到tomcat的webapps目錄下

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

到此即可解決該問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM