使用Docker部署 spring-boot maven应用的方法
时间:2019-03-30
本文章向大家介绍使用Docker部署 spring-boot maven应用的方法,主要包括使用Docker部署 spring-boot maven应用的方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文介绍了使用Docker部署 spring-boot maven应用,分享给大家,具体如下:
部署过程分为以下几个步骤:
- 创建一个简单的spring-boot应用
- 打包运行应用
- 容器化应用
- 在pom文件中添加docker支持
- 创建docker镜像
- 运行docker容器
- 查看正在运行的容器
- 启动/关闭/重启/删除docker容器
1. 创建一个简单的spring-boot应用
在IntelliJ IDEA中File->New->Project:
然后点Next->Finish.
2. 打包运行应用
pom.xml中添加依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
添加一个控制器:
@Controller public class HelloWorld{ @GetMapping("/hello") public void helloworld(HttpServletResponse response) throws IOException { response.getWriter().write("Hello Spring-boot"); } }
运行项目,访问: http://localhost:8080/hello,如果出现: Hello Spring-boot 第二步完成.
3. 容器化应用
在项目目录创建Dockerfile文件: src/main/docker/Dockerfile(没有后缀),内容如下:
FROM frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD demo-0.0.1-SNAPSHOT.jar app.jar RUN sh -c 'touch /app.jar' ENV JAVA_OPTS="" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
其中 demo-0.0.1-SNAPSHOT.jar 是项目打包后 /target/ 里面的文件名
4. 在pom文件中添加docker支持
<properties> <docker.image.prefix>ramer</docker.image.prefix> </properties> <build> <plugins> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.11</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>
5. 创建docker镜像
cmd进入到当前目录:
cd Z:/Desktop/springboot-demo
打包,创建镜像:
mvn package -Dmaven.test.skip=true docker:build
注意: 请确保maven已添加到path中;并且已安装docker,如果没有安装,请访问: https://www.docker.com/community-edition#/download 下载合适的版本.
6. 运行docker容器
##最好添加--name参数 docker run --name=springboot-docker-demo -p 8080:8080 -t ramer/demo
在浏览器访问: http://localhost:8080/hello
7. 查看正在运行的容器
cmd: docker ps
8. 启动/关闭/重启/删除docker容器
cmd: docker start/stop/restart/rm CONTAINER_ID/NAME
其中:
CONTAINER_ID: 是容器id,执行 docker ps 可查看
NAME: 是容器的名称,也就是docker run ?name后面的名字
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- websocket教程(一) 非常有趣的理解websocket
- 前端插件——头像截图上传插件的使用(带后台)
- 如何减轻ajax定时触发对服务器造成的压力和带宽的压力?ajax-长轮训
- Spark源码之Standalone模式下master持久化引擎讲解
- spring整合quartz
- android沉浸式状态栏的实现
- Jayrock: JSON and JSON-RPC for .NET
- rabbitMQ教程(三) spring整合rabbitMQ代码实例
- 谈谈序列化—实体bean一定要实现Serializable接口?
- Kafka源码系列之通过源码分析Producer性能瓶颈
- 微软在动态语言支持上超越了Java?
- JAVA图片批量上传JS-带预览功能
- Netty-Websocket 根据URL路由,分发机制的实现
- DrawerLayout实现网易新闻抽屉效果
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Elasticsearch深分页以及排序查询问题
- 聊聊dubbo-go的HystrixFilter
- 如何将Java工程导出成可以执行的jar
- 利用JSP内置的Application对象实现的网站引用计数
- JSP导入XML不成功的一个原因
- 生产环境日志清理脚本
- fastadmin插件开发之插件目录
- EasySwoole之定时任务面板
- Gradle构建springBoot项目
- python菜鸟教程 | if elif else 判断
- 图解面试题:人均付费如何分析?
- 面试官拿System.out.println()考了我半个小时?我傻了
- 为何总给外卖打差评?我们来数据分析一下!
- 解决Linux html生成图片中文乱码
- 前端必知必会-BFC案例剖析