使用Docker部署 spring-boot maven应用的方法
作者:Ramer-F 发布时间:2021-05-07 04:38:57
本文介绍了使用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后面的名字
来源:http://blog.csdn.net/u011699931/article/details/70226504
猜你喜欢
- 新一代的内容协作平台 Lotus Quickr 8.0 于 6 月 26 日在全球发布,Lotus Quickr 的诞生将对企业协同办公产生
- 一,nfs服务优缺点NFS服务简介NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由
- 在Exchange Server2007之前的版本中,管理邮件的通讯录是一件非常让人头疼的事情(特别是在大量的成员机构管理上),管理员不得不
- 本文是谷歌关键字广告(Google AdWords)专家Amanda Kelly在“事半功倍做营销”
- 我并不是一个善于思考的人,我做网站的最初目的是消磨时间,因为大学让人感觉很空虚。但是慢慢的随着对做网站的深入,我也慢慢的喜欢上了站长这些可爱
- 微软上周五向雅虎董事会发出446亿美元收购要约后,引起了业内很大的反响,大家都被突来的信息感到意外,包括雅虎高层。杨致远回馈称,雅虎董事会还
- 在比较复杂的网络环境中,用户需要通过不同的网关访问不同的网络服务器,比如笔记本电脑用户在家时使用ADSL,在单位使用局域网时就需要切换不同的
- 我们很多时候在liunx系统上安装了web服务应用后(如tomcat、apache等),需要让其它电脑能访问到该应用,而linux系统(ce
- 虚拟机是非常方便的测试软件,我们可以用来做各种测试,不会对硬件造成伤害,为了能够更加方便的演示环境,便于做各种例子;而又能保证主机的快速运行
- 上周,一个朋友找我聊天,问我如何正规的把alexa排名搞上去,然后我告诉他,如果你想赔钱,就继续关注alexa排名吧,如果你想赚钱,就应该把
- 在线列表图标功能是Discuz! 7.1中用于区分在线成员列表中会员的身份。当您打开在首页或分版块显示在线用户功能时,首页或分版块的在线会员
- 由于各种原因,我们有时候需要在一个IP地址上建立多个web站点,在IIS5中,我们可能通过简单的设置达到这个目标.在IIS中,每个 Web
- 本文介绍了20条简单有趣的技巧,让你告别以往费时费力的搜索习惯。从现在起,Tips你的“搜”能力吧!对上百万人而言,Google是一个每天都
- 我们现在如果认为微博客很难获得盈利(或者说是可观的收入),是因为我们的思考陷入思维定势,认为Twitter现在的盈利是怎样的,中国的微博客也
- 链接这里有一个怎么选择的问题。首面选择链接要选择(pr值)权重高的网站做你的反向链接。尤其是刚建立的小站。如果有一个pr值高的站带着你。你几
- 今年8月搜索巨头谷歌推出更新版的“谷歌地球(Google Earth)”浏览系统,并且增加了“谷歌太空”(Google Sky)新功能。让用
- PageCookery是由explon开发的一套微博客系统,采用Php+Mysql架构而成,详细介绍及演示可参考他们的官方网站,这里言归正传
- CloudStack SSVM启动条件源码阅读与问题解决方法: 在CloudStack建立zone的时候,经常遇到SSVM不启动,
- 搜索方便我们的生活,而实际上,它还在记录我们的生活。比如,在大年初五浏览谷歌“热榜”(rebang.google.cn),你会发现最热门的搜
- 门户通站长论坛自2008年4月8日正式上线以来,立即吸引了国内外众多站长的加盟和追捧,截止到今年2月份,门户通论坛的有效注册会员数已经达到1