使用docker在linux环境中部署springboot包的教程

 更新时间:2021年3月22日 15:00  
这篇文章主要介绍了使用docker在linux环境中部署springboot包,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

因为springboot是内嵌了tomcat服务器的,所以打成jar包后,是可以直接运行的。

首先我们看一下,在windows环境下的打包部署

1. 进行install打包

2. 检查,在target目录中是否存在了项目jar包

在这里插入图片描述

3.如果已经存在了项目jar包,就可以直接运行了(前面说了,springboot包是可以直接运行的)

在这里插入图片描述

4.在dos命令框中使用java -jar指令

java -jar springboot-nriat-common-demo-0.0.1-SNAPSHOT.jar

 

在这里插入图片描述

启动效果:

在这里插入图片描述

在这里插入图片描述

没有报错,启动成功!

上面说的是windows系统上的springboot发包部署,下面进入正题。

使用docker在linux系统中进行发包部署。

1. 首先需要准备一个dockerfile的文件,文件内容如下:

# 指定基础镜像
FROM java:8
# 维护者信息
MAINTAINER lbl
# 定义匿名卷
VOLUME /tmp
#复制文件或修改名称
ADD springboot-nriat-common-demo-0.0.1-SNAPSHOT.jar app.jar
# 允许指定的端口
EXPOSE 8087
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

文件解析

在这里插入图片描述

解释下这个配置文件:

VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。该步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录
项目的 jar 文件作为 “app.jar” 添加到容器的
ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/./urandom” 作为 Entropy Source

如果是第一次打包,它会自动下载java 8的镜像作为基础镜像,以后再制作镜像的时候就不会再下载了。

2. 将dockerfile文件与springboot项目的jar包放在同一个文件夹中

在这里插入图片描述

3. 然后开始制作镜像

docker build -t springboot-docker .

使用docker images查看镜像是否已经生成

docker images

在这里插入图片描述

5.配置springboot项目,启动容器

docker run -d -p 8087:8087 8493c1f0592c

-d参数是让容器后台运行
-p 是做端口映射,此时将服务器中的8080端口映射到容器中的8087(项目中端口配置的是8087)端口
使用images镜像的IMAGE ID

6. 最后使用docker ps -a,查看一下是否已经启动。

docker ps -a

在这里插入图片描述

启动成功!!

到此这篇关于使用docker在linux环境中部署springboot包的文章就介绍到这了,更多相关docker部署springboot包内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

相关文章

  • docker部署confluence的完整步骤

    这篇文章主要介绍了docker部署confluence的完整步骤,这里的镜像并不是小编自己写的是基于他人打包的文中有详细介绍,需要的朋友可以参考下...2021-06-11
  • 五分钟解锁springboot admin监控新技巧

    本文不会讲如何搭建企业的运维监控系统,有兴趣的可以去找找成熟的比如Zabbix、Prometheus,甚至比较简单的Wgcloud都能满足一定的需求,不在此赘述。本文讲解如何使用Springboot admin对spring boot项目进行应用监控,感兴趣的朋友一起看看吧...2021-06-20
  • python imutils包基本概念及使用

    python imutils包可以很简洁的调用opencv接口,轻松实现图像的平移,旋转,缩放,骨架化等操作,对python imutils包基本概念及使用方法感兴趣的朋友一起看看吧...2021-07-05
  • 安装Docker Desktop报错WSL 2 installation is incomplete的问题(解决报错)

    这篇文章主要介绍了安装Docker Desktop报错WSL 2 installation is incomplete的问题,解决方法很简单只需我们自己手动更新一下,我们根据提示去微软官网下载最新版的wsl2安装后即可正常打开,需要的朋友可以参考下...2021-06-13
  • Spring Boot如何通过java -jar启动

    大家开发的基于Spring Boot 的应用 ,jar形式, 发布的时候,绝大部分都是使用java -jar 启动。本文主要介绍了Spring Boot如何通过java -jar启动,一起来了解一下...2021-05-24
  • Java Springboot之Spring家族的技术体系

    今天带大家来学习Spring家族的技术体系,文中有非常详细的图文介绍及代码示例,对正在学习java的小伙伴们很有帮助,需要的朋友可以参考下...2021-05-22
  • java进阶之了解SpringBoot的配置原理

    今天带大家了解SpringBoot的相关知识,文中对SpringBoot的配置原理作了非常详细的图文示例及介绍,需要的朋友可以参考下...2021-06-04
  • springboot整合freemarker代码自动生成器

    最近做了一个工具,可以实现代码自动生成,今天整理出来分享给大家,需要的朋友们下面随着小编来一起学习学习吧...2021-05-27
  • 解决springboot利用ConfigurationProperties注解配置数据源无法读取配置信息问题

    今天在学习springboot利用ConfigurationProperties注解配置数据源的使用遇到一个问题无法读取配置信息,发现全部为null,纠结是哪里出了问题呢,今天一番思考,问题根源找到,下面把我的解决方案分享到脚本之家平台,感兴趣的朋友一起看看吧...2021-05-30
  • SpringBoot框架如何管理Xml和CSV

    XML是可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言。CSV是一种通用的、相对简单的文件格式,通常被用在大数据领域,进行大规模的数据搬运操作,本文将介绍SpringBoot框架如何管理Xml和CSV...2021-06-17
  • Pyhton模块和包相关知识总结

    文中详细整理了关于Python模块和包的相关知识点,刚入门Python的小伙伴们可以学习一下,有助于加深Python基础的理解.而且有详细说明及代码示例,需要的朋友可以参考下...2021-05-13
  • 教你怎么用Idea打包jar包

    这篇文章主要介绍了教你怎么用Idea打包jar包,文中有非常详细的代码示例,对刚开始使用IDEA的小伙伴们很有帮助哟,需要的朋友可以参考下...2021-05-12
  • SpringBoot配置ShedLock分布式定时任务

    ShedLock是一个在分布式环境中使用的定时任务框架,这篇文章主要介绍了SpringBoot配置ShedLock分布式定时任务,需要的朋友们下面随着小编来一起学习学习吧...2021-05-24
  • 使用SpringBoot自定义starter详解

    这篇文章主要介绍了使用Spring Boot自定义starter详解,文中有非常详细的代码示例,对正在学习java的小伙伴们有很好地帮助哟,需要的朋友可以参考下...2021-05-10
  • SpringBoot整合JWT的入门指南

    JWT全称是json web token,它将用户信息加密到 token 里,服务器不保存任何用户信息,服务器通过使用保存的密钥验证 token 的正确性,只要正确即通过验证,这篇文章主要给大家介绍了关于SpringBoot整合JWT的相关资料,需要的朋友可以参考下...2021-06-29
  • 关于Jenkins + Docker + ASP.NET Core自动化部署的问题(避免踩坑)

    这篇文章主要介绍了关于Jenkins + Docker + ASP.NET Core自动化部署的问题,本文给大家带来了docker安装方法及一些注意事项,内容有点小长,希望朋友们耐心看完,一定有收获...2021-05-14
  • OpenCV-Python实现凸包的获取

    凸包是一个计算几何中的概念,在图像处理过程中,我们常常需要寻找图像中包围某个物体的凸包,本文就使用OpenCV实现,感兴趣的可以了解一下...2021-06-08
  • SpringBoot集成Druid连接池连接MySQL8.0.11

    这篇博客简单介绍spring boot集成druid连接池的简单配置和注意事项,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧...2021-07-02
  • Gogs+Jenkins+Docker 自动化部署.NetCore的方法步骤

    这篇文章主要介绍了Gogs+Jenkins+Docker 自动化部署.NetCore,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-06-29
  • Springboot基础之RedisUtils工具类

    本文来说下RedisUtils工具类,主要介绍了整合Redis、MyBatis,封装RedisUtils工具类等知识,文中有非常详细的代码示例,对正在学习java的小伙伴们有很好的帮助,需要的朋友可以参考下...2021-05-15