Docker部署web项目

  • 一、推荐提前准备的软件
  • 1、IDEA2022
  • 2、xshell7
  • 3、xftp7
  • 4、Navicat Premium 15
  • 二、docker上安装mysql
  • 1、先从网上拉取mysql镜像
  • 2、创建mysql容器
  • 3、后续自己创建数据库
  • 三、docker上安装tomcat
  • 1、先从网上拉取tomcat镜像
  • 2、创建tomcat容器
  • 3、复制本地里conf里的这三个文件到xftp里自己设置的tomcat文件夹内conf文件夹内
  • 4、将webapps.dist里的文件复制到webapps里
  • 4.1 进入tomcat容器
  • 4.2 将webapps.dist里的内容复制到webapps里
  • 四、IDEA将项目打包成war包
  • 1、首先在pom.xml里添加依赖
  • 2、在pom.xml文件里添加打包的后缀名为war
  • 3、指定打包的包名为demo(自己随便取个名字)
  • 4、创建一个类
  • 5、执行命令打包成war包
  • 5.1 点击这个地方
  • 5.2 执行命令即可
  • 5.3 最后war包的位置就在target里面
  • 五、将war包发布到docker上的tomcat里
  • 1、将war包从本机复制粘贴到xftp对应的tomcat文件夹下的webapps文件夹内
  • 2、重新运行tomcat容器,war包自动解压,就可以成功运行了
  • 2.1 访问地址格式:地址IP号:8080/项目文件名
  • 2.2 界面如下


一、推荐提前准备的软件

1、IDEA2022

常用的后端开发软件(javaweb、spring、springboot)

现有系统打包docker docker打包web项目_war包

2、xshell7

用来连接并操控远程服务器的软件

现有系统打包docker docker打包web项目_现有系统打包docker_02

3、xftp7

用来拖取文件到远程服务器中

现有系统打包docker docker打包web项目_tomcat_03

4、Navicat Premium 15

用来连接数据库的软件,十分方便

现有系统打包docker docker打包web项目_mysql_04

二、docker上安装mysql

1、先从网上拉取mysql镜像

docker pull mysql:8.0.23

2、创建mysql容器

docker run -p 3306:3306 --name mysql8 --restart=always --env=TZ=Asia/Shanghai -v /xgmysql/mysql8/conf:/etc/mysql/conf.d -v /xgmysql/mysql8/logs:/logs -v /xgmysql/mysql8/data:/var/lib/mysql -v /xgmysql/mysql8/backup:/backup -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.23

3、后续自己创建数据库

三、docker上安装tomcat

1、先从网上拉取tomcat镜像

docker pull tomcat:8.5.73-jdk8-corretto

2、创建tomcat容器

docker run --name tomcat -p 8080:8080 -v /mytomcat/tomcat/conf:/usr/local/tomcat/conf -v /mytomcat/tomcat/logs:/usr/local/tomcat/logs -v /mytomcat/tomcat/webapps:/usr/local/tomcat/webapps -v /mytomcat/tomcat/webdata:/data -d tomcat:8.5.73-jdk8-corretto

3、复制本地里conf里的这三个文件到xftp里自己设置的tomcat文件夹内conf文件夹内

现有系统打包docker docker打包web项目_现有系统打包docker_05

这样tomcat容器启动后就不会自动死亡

4、将webapps.dist里的文件复制到webapps里

4.1 进入tomcat容器

现有系统打包docker docker打包web项目_mysql_06

docker exec -it 6392d872cf43 /bin/bash

4.2 将webapps.dist里的内容复制到webapps里

(1)命令如下

现有系统打包docker docker打包web项目_mysql_07

cp -r webapps.dist/* webapps

这样tomcat也有相应界面了,没复制之前是没有的

(2)相关界面

现有系统打包docker docker打包web项目_mysql_08

注意:如果是
自己本机就是:localhost:8080
如果是远程服务器就是:远程服务器IP地址:8080
这样就布置成功了

四、IDEA将项目打包成war包

1、首先在pom.xml里添加依赖

<!-- 外置tomcat启动要的jar包 -->
<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <scope>provided</scope>
</dependency>

2、在pom.xml文件里添加打包的后缀名为war

<packaging>war</packaging>

现有系统打包docker docker打包web项目_现有系统打包docker_09

3、指定打包的包名为demo(自己随便取个名字)

标签中加上 Spring_JPA_demo1

此标签目的为打出来的包名直接为 demo.war,而不是 artifactId+version .war的形式。

现有系统打包docker docker打包web项目_现有系统打包docker_10

4、创建一个类

现有系统打包docker docker打包web项目_war包_11

package com.jpa.spring_jpa.config;

import com.jpa.spring_jpa.SpringJpaApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(SpringJpaApplication.class);
    }
}

5、执行命令打包成war包

5.1 点击这个地方

现有系统打包docker docker打包web项目_war包_12

5.2 执行命令即可

现有系统打包docker docker打包web项目_war包_13

5.3 最后war包的位置就在target里面

现有系统打包docker docker打包web项目_war包_14

五、将war包发布到docker上的tomcat里

1、将war包从本机复制粘贴到xftp对应的tomcat文件夹下的webapps文件夹内

现有系统打包docker docker打包web项目_docker_15

2、重新运行tomcat容器,war包自动解压,就可以成功运行了

2.1 访问地址格式:地址IP号:8080/项目文件名

自己本机:localhost:8080/Spring_JPA_demo1
远程服务器:服务器IP地址:8080/Spring_JPA_demo1

2.2 界面如下

现有系统打包docker docker打包web项目_mysql_16