springboot运行
springboot自带tomcat,意味着要启动springboot项目不必像ssm项目一样,需要自己配置tomcat,同时springboot追根到底是个java程序,意味着springboot项目也能够像普通java程序一样通过java -jar运行
docker部署springboot方式
通过上述我们可以知道,要使springboot在docker上运行,主要有两种途径:一、将整个springboot项目代码复制到docker容器内,通过mvn spring-boot:run启动,二、在开发机器编译好jar文件,复制到docker容器上,通过java -jar app.jar文件启动。接下来我们分别介绍两种方式
docker通过 mvn spring-boot:run启动
- 创建springboot项目
创建的方式很多(idea,指令),我这里通过vscode的springboot插件创建docker-springboot
将pom.xml中添加以下配置,加速maven依赖下载
centralcentral repositoryhttp://maven.aliyun.com/nexus/content/groups/public/defaulttruenevertruenever
- 创建Dockerfile
docker-springboot项目根目录创建Dockerfile
FROM maven:3.5-jdk-8COPY ./src /var/www/html/srcCOPY ./pom.xml /var/www/htmlWORKDIR /var/www/htmlCMD mvn spring-boot:run
- 创建docker-springboot镜像
项目根目录执行
docker build -t docker-springboot:v1 .项目根目录执行
- 启动容器
默认情况下,springboot项目启动的端口为8080
docker run -p 80:8080 --name docker-springboot docker-springboot:v1
docker通过 java -jar启动
- 创建springboot项目
由于上述方式已经创建了springboot项目,我们接下来在以上项目进行改造
- 编译springboot项目
mvn clean package -Dmaven.test.skip=true
- 创建Dockerfile
将原有的Dockerfile改为Dockerfile.bak, 同时创建Dockerfile
FROM maven:3.5-jdk-8COPY ./target/docker-springboot-0.0.1-SNAPSHOT.jar /var/www/html/app.jarWORKDIR /var/www/htmlCMD java -Xms300m -Xmx800m -jar /var/www/html/app.jar
- 创建docker-springboot镜像
项目根目录执行
docker build -t docker-springboot:v2 .
- 启动容器
使用docker我们需要一直注意,由于上述一种部署方式已经启动了一个名为docker-springboot容器,如果我们需要启动相同名称的容器,我们需要把之前的停止删除
docker stop docker-springboot
docker rm docker-springboot
默认情况下,springboot项目启动的端口为8080
docker run -p 80:8080 --name docker-springboot docker-springboot:v2
- 效果
浏览器输入
localhost