构建带有war包的tomcat镜像
-
到官网下载对应版本的jdk和tomcat,此案例基于centos7的jdk1.8.0_281和apache-tomcat-8.5.65,下载地址如下(注意下载以.tar.gz结尾的压缩包)
jdk:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html tomcat:https://tomcat.apache.org/download-80.cgi
-
上传下载的tomcat压缩包和、jdk压缩包、要运行的war包到linux服务器
# spc [要上传的文件] 用户@ip:linux服务器目录 scp apache-tomcat-8.5.65.tar.gz root@ip:/ns scp jdk-8u281-linux-x64.tar.gz root@ip:/ns scp xxx.war root@/ip:/ns
-
到linux服务器上对应的目录,解压刚刚上传的tomcat压缩包,jdk压缩包
cd /ns tar -xvf apache-tomcat-8.5.65.tar.gz tar -xvf jdk-8u281-linux-x64.tar.gz
-
编写Dockerfile文件
注意:Dockerfile文件、解压后的tomcat、jdk以及要部署的war包在同一目录,如果不在同一目录,就需要指定目录位置。
FROM centos:7 # 作者 LABEL maintainer="ns@13515124243@163.com" # Dockerfile文件编写日期 ENV REFRESHED_AT 2021-04-08 # 设置中文编码 ENV LANG C.UTF-8 # 指定工作目录 WORKDIR /usr # 创建jdk和tomcat存放目录、时区设置 RUN mkdir jdk \ && mkdir tomcat \ && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo 'Asia/Shanghai' >/etc/timezone # 添加本地jdk到镜像目录 ADD jdk1.8.0_281 /usr/jdk # 添加本地tomcat到镜像目录 ADD apache-tomcat-8.5.65 /usr/tomcat # 设置环境变量 ENV JAVA_HOME /usr/jdk ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /usr/tomcat ENV CATALINA_BASE /usr/tomcat ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin # 添加war包到tomcat的webapps目录下 ADD ou.war /usr/tomcat/webapps/ # 开放端口 EXPOSE 8080 # 执行启动命令 ENTRYPOINT ["/usr/tomcat/bin/catalina.sh","run"]
-
根据Dockerfile构建镜像到当前docker环境中
docker build -t ns-tomcat-centos7 . # -t 即 -tag,ns-tomcat-centos7为构建出来的镜像tag,注意最后有个. 表示当前docker环境
-
根据镜像启动容器
docker run -d --name test-p 8080:8080 ns-tomcat-centos7 # -d 后台运行 # --name 别名 test一般使用war包名即可 # -p 端口映射到宿主机的哪个端口,后面那个8080是容器的端口,前面这个是宿主机的,即访问时候使用的端口
-
查看容器启动日志
docker logs -f --tail 500 test # -f 跟踪日志输出 # --tail 列出最新的N调日志