我们已经安装完成了Java环境,那么本篇就开始怎么部署一个SpringBoot项目到Docker中,Docker实现SpringBoot项目的部署。
首先构建一个SpingBoot项目。
进入 http://start.spring.io,使用Maven的方式快速构建一个springboot工程
创建一个HelloWorldController用于接收请求与返回响应
@RequestMapping(value = "hello")
@RestController
public class HelloWorldController {
@RequestMapping(value = "/{msg}")
public String hello(@PathVariable String msg){
return "Hello:\t"+msg;
}
}
启动SpringBoot工程,发送请求 'http://localhost:8080/hello/CainGao',查看返回结果
当前工程构建完成。 在 pom.xml 中添加docker支持 镜像名称
<properties>
<docker.image.prefix>springboot</docker.image.prefix>
</properties>
添加插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- Docker maven plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
创建Dockerfile
FROM openjdk:11
VOLUME /tmp
ADD demo-0.0.1-SNAPSHOT.jar /demo.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/demo.jar"]
FROM: 代表IMAGE的父镜像
VALUME: 挂载本地的路径
ADD: 为镜像添加的内容
ENTRYPOINT: 执行的脚本命令
把Dockerfile 与jar包放到同一路径下,执行命令 docker build -t helloworld .
执行完成后查看本地镜像列表
现在即可直接使用命令 docker run -d -p 8080:8080 helloworld 启动容器。
当然,还有更加简单的方式进行容器的部署。直接通过maven插件的方式来进行,本次其实我们是没有使用的。因为需要Docker开启远程访问。
当前我们使用的windows的docker desktop版,右键打开Settings-->General-->勾选 Expose daemon on tcp://localhost:2375 without TLS,勾选后Docker会直接进行重启加载。
访问 http://localhost:2375/info 查看是否启动成功. 当前即可直接使用命令 mvn package docker:build 进行构建.
此刻应该大家都实现了直接基于该Dockerfile与maven的方式部署SpringBoot应用到Docker中。
关注公众号,回复大数据相关关键词获取相关视频教程,如elasticsearch,即可获取! 公众号搜索:<指尖数虫>