无非是两种方式
- 方式一:先运行tomcat的容器,然后将javaWeb项目部署在容器的Tomcat上(这种在操作上跟虚拟机没什么区别)
- 方式二:直接将tomcat和javaWeb打成镜像,直接生成容器
因为是老项目,没有Main-class,必须运行在应用服务器上(例如Tomcat)。不像springboot项目,有启动程序可以直接通过java -jar命令运行。
方式一
先生成一个Tomcat容器,如果本地没有Tomcat镜像,docker会自动去远程下载
docker run -tid --name TomcatContain -p 8080:8080 tomcat
等TomcatContain容器成功运行,进入容器内部,将打好的war包放入/usr/local/tomcat/webapps路径内,重启容器。
docker exec -ti TomcatContain /bin/bash
如何将war包放进容器内?
用命令docker ps查看容器信息,获取容器的ID
docker ps
再把编译好的war包放进docker宿主机的任意文件夹,再用命令将文件复制进容器的/usr/local/tomcat/webapps路径下
docker cp /路径/xxxx.war 容器ID:/usr/local/tomcat/webapps
然后查看下是否复制成功,然后重启tomcat容器
docker restart TomcatContain
方式二
设置Dockerfile
# Docker image for javaWeb application
# VERSION 0.0.1
# Author: Kannokaze
### 基础镜像,使用tomcat,javaWeb需在Tomcat才能运行
FROM hub.c.163.com/library/tomcat
#作者
MAINTAINER Kannokaze <1131429439@qq.com>
#系统编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
#暴露8080端口
EXPOSE 8080
#部署war包
#将编译好的war包复制到tomcat的webapps目录上,tomcat就会自动部署,不用重启容器
COPY /out/artifacts/gpms_war/gpms_war.war /usr/local/tomcat/webapps/gpms.war
然后就像往常一样,构建image
docker build -t xxxx:v.0.0.1 .
等到进行构建完成,生成容器,不需要重启容器,Tomcat会自动部署
docker run -tid --name xxx -p xxxx:xxxx xxxx:v0.0.1
|