史上最简单的SpringBoot docker部署大法
1.创建一个简单的SpringBoot应用
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
public class SpringbootwithdockerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootwithdockerApplication.class, args);
}
}
@RestController
@RequestMapping("/user")
public class UserController {
@RequestMapping("/getInfo")
public Map<String, Object> getUser() {
Map<String, Object> map = new HashMap<>();
map.put("name", "zhangxing");
map.put("age", 27);
return map;
}
}
2.在项目根目录创建Dockerfile
FROM java:8-alpine
MAINTAINER "zhangxing"
ADD target/demo.jar app.jar
EXPOSE 8888
ENTRYPOINT ["java", "-jar", "/app.jar"]
FROM:基于某镜像
MAINTAINER :作者信息
ADD:将target下打出的jar包解压成app.jar
EXPOSE :暴露服务端口号
ENTRYPOINT :运行开启服务命令
3. 打包dokcer镜像
3.1 进行项目根目录(即与Dockerfile平级目录),运行如下命令:
docker build -t demo .
3.2 镜像构建完成后,docker images 看下镜像是否生成呢
docker images
3.3 运行镜像
docker run -d -p 8080:8888 demo
当然,如果有docker 私服,可以将本地生成的镜像push到自己的私服中,在需要用到的地方直接pull来运行就好,这就应验了docker的 "once build,run anywhere"的特性
-d:服务在后台运行
-p: 宿主机端口映射容器端口,即冒号左边为宿主机端口,右边为容器端口
当然, 还有很多命令, 有兴趣的可以自行学习
3.4 查看下正在运行的容器
docker ps
3.5 看下容器启动日志
docker logs -f containerId
分析日志来看,项目已经启动了
3.6 验证接口是否连通
至此,由Dockerfile构建的springboot应用镜像已经成功部署
欢迎关注博主公众号,更多干货等你来拿!