• 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 链接数据

     

  • 相关阅读:
    python面试的100题(12)
    python面试的100题(11)
    python面试的100题(10)
    python面试的100题(9)
    python面试的100题(8)
    python面试的100题(7)
    纯js做鼠标拖拽物体并记录鼠标位置的效果(附pageX clientX offsetX screenX的区别图)
    利用function函数做一个简易计算器(getElementById)
    JavaScript中的函数function
    初识JavaScript
  • 原文地址:https://www.cnblogs.com/DeryKong/p/16367152.html
Copyright © 2020-2023  润新知