docker tomcat镜像部署springbootwar包

springboot打war包

1.在pom文件中增加插件


xx


org.springframework.boot
spring-boot-maven-plugin


maven-compiler-plugin

1.8
1.8


   
        
org.apache.maven.plugins
maven-surefire-plugin
2.18.1

true




2.删除springboot自带打tomcat依赖

org.springframework.boot
spring-boot-starter-web
${spring-boot-version}


org.springframework.boot
spring-boot-starter-tomcat




3.增加tomcat依赖

org.springframework.boot
spring-boot-starter-tomcat

provided


4.新定义类继承 SpringBootServletInitializer,并实现
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(xxApplication.class);
}
这个也可以写在xxApplication.java中
5.如果是springboot2.2.x+mybatis的,那么需要在resource下面创建spring.properties
spring.jndi.ignore=true
下面就直接编译打包

docker 部署tomcat中打war包
1.首先先在docker仓库中下拉tomcat镜像,也可以使用下载好的tomcat镜像执行docker load -i x.tar
2.编写dockerFile,这样容器才会挂载运行
DockerFile

  from 容器id或者容器标签
  #时区
  RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  && echo 'Asia/Shanghai' >/etc/timezone

  #war

  RUN rm -rf /usr/localhost/tomcat/webapps/*

  COPY *.war /usr/local/tomcat/webapps/

  3.build容器,执行

  docker build -t 定义新镜像的标签 -f Dockerfile .

  Dockerfile可以省略,它会在当前目录下找Dockerfile这个文件

  5.运行新到镜像 docker run --name xx:v1 -p 8081:8080 镜像id

  如果想要在后台运行那么加上-d,不过第一次不建议,我们需要查看日志

  6.进入容器查看war包有没有copy到webapps下面,并且解析

  docker exec -it 容器 /bin/bash

  7.执行保存操作

    docker save 镜像id -o xx.tar 

 

 拓展命令

 docker images 查看镜像

 docker ps 查看运行到容器

    docker ps -a 查看所有容器

    docker stop 容器ID 停止容器

    docker rm 容器ID 删除容器

    docker rmi 镜像ID 删除镜像

    

 1.镜像和容器的区别

    镜像是指文件,例如系统镜像

    容器是指环境,由镜像文件运行产生的

    2.save和export的区别

    save操作的是镜像,export操作的是容器

    save因为有记录,所以可以回滚,而export不可以

你可能感兴趣的:(docker tomcat镜像部署springbootwar包)