Docker使用tomcat部署java项目

一、JAVA项目打成war包

前提:数据库及表已经建立好

1、 先将项目放到 Linux 上某个目录下,如 /home/ubuntu/Project/pinter/pinter

注意:如果项目是 war 包形式的,需要先创建 pinter 文件夹,然后在文件夹内对 war 包进行解压:unzip pinter.war

最终目录结构

pinter
├── Dockerfile
├── pinter
│   ├── META_INF
│   ├── org
│   ├── WEB-INF

2、数据库配置 (数据库已经建好:CREATE DATABASE pinter CHARACTER SET utf8 COLLATE utf8_general_ci; 初始化数据

cd pinter/pinter/WEB-INF/classes
vi application.properties

修改配置信息

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.1.29:3306/pinter?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT
spring.datasource.username=root
spring.datasource.password=Admin#1234

二、编辑 Dockerfile 文件

FROM tomcat:8.5.43
ADD pinter /usr/local/tomcat/webapps
RUN mkdir -p /usr/local/tomcat/webapps/pinter
COPY ./pinter /usr/local/tomcat/webapps/pinter  # 将 pinter 项目下面的文件复制到容器中 webapps/pinter 目录下

ENV CATALINA_OPTS="-Djava.rmi.server.hostname=ip -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8971 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.rmi.port=8971"
EXPOSE 8080 8971

Djava.rmi.server.hostname 后面是 Docker 所处的主机地址

8080是访问项目的端口

8971是jmx连接的端口,这个端口无法访问项目,但是必须设置

三、利用Dockerfile创建镜像

# 创建名为pinter的镜像,版本为v1
docker build -t pinter_image:v1 .
# 查看创建的镜像
docker images

四、利用镜像生成容器并后台运行,容器名为 pinter

docker run -it -d --name pinter -p 8080:8080 -p 8971:8971 -v /home/ubuntu/Project/pinter:/home/data pinter_image:v1 
# 查看所有容器状态sudo docker ps

五、浏览器访问项目

http://{ip}:{port}/pinter

六、jvisualvm连接

控制台输入 jvisualvm 打开Java VisualVM

添加远程主机

 

 在远程主机下添加 JMX链接

 

 查看 JMX 链接数据

 

 

posted @ 2022-06-11 23:29  DeyouKong  阅读(484)  评论(0编辑  收藏  举报