iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >Docker如何部署Spring-boot项目
  • 269
分享到

Docker如何部署Spring-boot项目

2024-04-02 19:04:59 269人浏览 薄情痞子
摘要

这篇文章主要介绍了Docker如何部署spring-boot项目的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Docker如何部署Spring-boot项目文章都会有所收获,下

这篇文章主要介绍了Docker如何部署spring-boot项目的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Docker如何部署Spring-boot项目文章都会有所收获,下面我们一起来看看吧。

一、基础spring-boot快速启动

 1.1 快速启动 pom.xml加入如下依赖

<parent>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-parent</artifactid>
    <version>2.0.5.release</version>
  </parent>

  <properties>
    <java.version>1.8</java.version>
    <project.build.sourceencoding>utf-8</project.build.sourceencoding>
  </properties>

  <dependencies>
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-WEB</artifactid>
    </dependency>
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-test</artifactid>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <finalname>spring-docker</finalname>
    <plugins>
      <plugin>
        <groupid>org.springframework.boot</groupid>
        <artifactid>spring-boot-Maven-plugin</artifactid>
      </plugin>
    </plugins>
  </build>

spring-boot启动类

@SpringBootapplication
public class dockerapplication {

  public static void main(string[] args) {
    springapplication.run(dockerapplication.class, args);
  }
}

测试api

@restcontroller
public class dockerstarterapi {

  @getmapping("/api/docker/hello")
  public string hello() {
    return "hello docker";
  }
}

配置启动配置文件 application.yml

server:
 port: 9090 # 为了展示效果, 这里改了默认端口8080

检查spring启动

.  ____     _      __ _ _
 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/ ___)| |_)| | | | | || (_| | ) ) ) )
 ' |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: spring boot ::    (v2.0.2.release)

...

2018-12-17 17:26:13.385 info 48740 --- [      main] o.s.j.e.a.annotationmbeanexporter    : reGIStering beans for jmx exposure on startup
2018-12-17 17:26:13.448 info 48740 --- [      main] o.s.b.w.embedded.Tomcat.tomcatwebserver : tomcat started on port(s): 9090 (Http) with context path ''
2018-12-17 17:26:13.453 info 48740 --- [      main] pers.study.docker.dockerapplication   : started dockerapplication in 1.982 seconds (JVM running for 2.602)

检查api是否生效

$ curl -xget 'http://localhost:9090/api/docker/hello'
hello docker

浏览器检查

http://localhost:9090/api/docker/hello

Docker如何部署Spring-boot项目

1.2 打包启动

项目打包

完成上面步骤之后,执行打包命令:

$ mvn clean -u -dmaven.test.skip compile package

因为上面的pom文件里面定义了 finalname ,所以在这里会看到编译打包之后 target 目录下会生成 spring-docker.jar

<finalname>spring-docker</finalname>

测试运行

$ java -jar target/spring-docker.jar

不出意外(有问题留言~)运行结果同上并检查api是否生效即可.

二、docker快速安装

接下来开始准备docker

安装

检查安装、查看帮助

$ docker --version
docker version 18.06.0-ce, build 0ffa825

$ docker --help
usage: docker [options] command
a self-sufficient runtime for containers
...

镜像加速

三、配置spring-boot + docker

pom.xml 添加docker plugin

<properties>
    <docker.image.prefix>springboot</docker.image.prefix>
  </properties>

  <build>
    <plugins>
      <!-- docker maven plugin -->
      <plugin>
        <groupid>com.spotify</groupid>
        <artifactid>docker-maven-plugin</artifactid>
        <version>1.0.0</version>
        <configuration>
          <imagename>${docker.image.prefix}/${project.build.finalname}</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 文件

根据上面 pom.xml 文件配置 <dockerdirectory>src/main/docker</dockerdirectory> ,这里配置了docker配置文件的目录,所以需要再 src/main 下面创建docker文件夹,同时创建 dockerfile 文件。

目录机构如图:

Docker如何部署Spring-boot项目

docker配置文件结构.png

编辑 dockerfile

from openjdk:8-jdk-alpine
volume /tmp
add spring-docker.jar app.jar
entrypoint ["java","-djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

from 表示以java8为基础镜像

volume 表示挂载目录

add 拷贝打包文件并重命名为 app.jar

entrypoint 根据下面的官方文档解释大致是为了缩短tomcat启动时间而添加的一个系统属性。

we added a volume pointing to /tmp because that is where a Spring Boot application creates working directories for tomcat by default. the effect is to create a temporary file on your host under /var/lib/docker and link it to the container under /tmp . this step is optional for the simple app that we wrote here but can be necessary for other spring boot applications if they need to actually write in the filesystem.

to reduce tomcat startup time we added a system property pointing to "/dev/urandom" as a source of entropy. this is not necessary with more recent versions of spring boot, if you use the "standard" version of tomcat (or any other web server).

配置完成!

四、docker启动spring-boot

进入 module 执行:

$ mvn package docker:build

[info] scanning for projects...

...

 ---> running in e1f8aba72bdf
removing intermediate container e1f8aba72bdf
 ---> 36a61c09f09a
progreSSMessage{id=null, status=null, stream=null, error=null, progress=null, progressdetail=null}
successfully built 36a61c09f09a
successfully tagged springboot/spring-docker:latest
[info] built springboot/spring-docker
[info] ------------------------------------------------------------------------
[info] build success
[info] ------------------------------------------------------------------------
[info] total time: 6.367 s
[info] finished at: 2018-12-17t20:48:21+08:00
[info] ------------------------------------------------------------------------

查看镜像

$ docker images
repository         tag         image id      created       size
springboot/spring-docker  latest       36a61c09f09a    2 minutes aGo    123mb

运行镜像

$ docker run -p 9090:9090 -t springboot/spring-docker
 .  ____     _      __ _ _
 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/ ___)| |_)| | | | | || (_| | ) ) ) )
 ' |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: spring boot ::    (v2.0.2.release)

2018-12-17 12:53:21.502 info 1 --- [      main] pers.study.docker.dockerapplication   : starting dockerapplication v1.0-snapshot on 94991c04be5d with pid 1 (/app.jar started by root in /)
2018-12-17 12:53:21.509 info 1 --- [      main] pers.study.docker.dockerapplication   : no active profile set, falling back to default profiles: default

···

2018-12-17 12:53:25.255 info 1 --- [      main] o.s.j.e.a.annotationmbeanexporter    : registering beans for jmx exposure on startup
2018-12-17 12:53:25.337 info 1 --- [      main] o.s.b.w.embedded.tomcat.tomcatwebserver : tomcat started on port(s): 9090 (http) with context path ''
2018-12-17 12:53:25.353 info 1 --- [      main] pers.study.docker.dockerapplication   : started dockerapplication in 4.485 seconds (jvm running for 5.346)

查看容器

$ docker ps
container id    image           command         created       status       ports                                  names
94991c04be5d    springboot/spring-docker  "java -djava.securit…"  53 seconds ago   up 52 seconds    0.0.0.0:9090->9090/tcp                          quizzical_bhabha

验证启动,访问api

$ curl -xget 'http://localhost:9090/api/docker/hello'
hello docker

至此docker部署spring-boot搭建完成。

五、移除镜像

 停止容器

$ docker stop 94991c04be5d
94991c04be5d

删除容器

$ docker rm 94991c04be5d
94991c04be5d

删除镜像

$ docker image rm springboot/spring-docker
untagged: springboot/spring-docker:latest
deleted: sha256:36a61c09f09ab88cfe5a05f564deb57498682f4a6f3ec01d2a8c4fdc80ac1e41
deleted: sha256:3f9aef70be6d4d43c205454d8874f10bc2f7280f70eb88cd1f04937b7965dd27
deleted: sha256:9a5800e93615bb4c5128bb36d31ec494327c01f1a9a768c1ff538badf76628b9
deleted: sha256:d9c66f907448fa9e61fd5f9267d7fcf8e1f4b52d0a20466414f2f45777261284

六、其他配置功能

添加环境属性

$ docker run -e "spring_profiles_active=prod" -p 9090:9090 -t springbooot/spring-docker

后台启动运行

$ docker run -p 9090:9090 -d springboot/spring-docker

开启容器debug 修改 dockerfile

from openjdk:8-jdk-alpine
volume /tmp
add spring-docker.jar app.jar
env java_opts ''
cmd java -djava.security.egd=file:/dev/./urandom $java_opts -jar app.jar

docker run

复制代码 代码如下:

$ docker run -e "java_opts=-agentlib:jdwp=transport=dt_Socket,address=5005,server=y,suspend=n" -p 9090:9090 -p 5005:5005 -t springboot/spring-docker

关于“Docker如何部署Spring-boot项目”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Docker如何部署Spring-boot项目”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网node.js频道。

--结束END--

本文标题: Docker如何部署Spring-boot项目

本文链接: https://www.lsjlt.com/news/96354.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Docker如何部署Spring-boot项目
    这篇文章主要介绍了Docker如何部署Spring-boot项目的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Docker如何部署Spring-boot项目文章都会有所收获,下...
    99+
    2024-04-02
  • 如何使用Docker部署Spring Boot项目
    这篇文章主要介绍如何使用Docker部署Spring Boot项目,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!创建一个简单的springboot项目一、在 pom.xml 中 ,使用 Spring Boo...
    99+
    2023-06-22
  • 怎么用Docker部署Spring Boot项目
    本篇内容介绍了“怎么用Docker部署Spring Boot项目”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Docker 技术发展为微服务...
    99+
    2023-06-04
  • 部署Spring Boot项目
    上传jar包 之前在新建Spring Boot项目[1]使用mvn install的方式,已经构建出jar包。 通过scp或rz/sz,将该jar包上传到服务器 执行java -jar hello-0.0....
    99+
    2023-08-30
    后端
  • docker如何部署spring cloud项目
    这篇文章给大家分享的是有关docker如何部署spring cloud项目的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、docker简介Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移...
    99+
    2023-06-05
  • docker如何部署python项目
    要部署Python项目,可以使用Docker来创建容器化的环境。以下是使用Docker部署Python项目的步骤:1. 创建Dock...
    99+
    2023-09-07
    docker python
  • docker如何部署php项目
    要部署一个PHP项目,您可以按照以下步骤使用Docker进行部署:1. 创建一个Dockerfile:在项目根目录下创建一个名为Do...
    99+
    2023-09-20
    docker php
  • 如何对Spring Boot与Docker进行部署
    这篇文章给大家介绍如何对Spring Boot与Docker进行部署,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。开启Docker远程访问首先需要开启docker远程访问功能,以便可以进行远程操作。CentOS 6修改...
    99+
    2023-05-31
    springboot dock docker
  • 如何使用Docker部署Spring Boot开源
    这篇文章给大家介绍如何使用Docker部署Spring Boot开源,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。云收藏项目已经开源2年多了,作为当初刚开始学习 Spring Boot 的练手项目,使用了很多当时很新的...
    99+
    2023-06-19
  • 如何部署.Net6项目到docker
    这篇文章主要介绍“如何部署.Net6项目到docker”,在日常操作中,相信很多人在如何部署.Net6项目到docker问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何部署.Net6项目到docker”的疑...
    99+
    2023-06-22
  • docker中如何部署django项目
    要在Docker中部署Django项目,可以按照以下步骤进行操作: 创建Django项目:首先在本地创建一个Django项目,可...
    99+
    2024-04-02
  • Dockerfile中编译、打包、部署spring boot项目
    1、Dockerfile 1.1、什么是Dockerfile         Dockerfile是自动构建docker镜像的配置文件,将镜像构建过程通过指令的方式定义在Dockerfile中。配合docker build命令行可以实现自动...
    99+
    2023-09-05
    spring boot 后端 java
  • 何在tomcat容器中部署一个spring boot项目
    本篇文章给大家分享的是有关何在tomcat容器中部署一个spring boot项目,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。把spring-boot项目按照平常的web项目...
    99+
    2023-05-31
    springboot omc tomcat
  • Docker部署Java 项目
    1、 连接服务器,创建项目文件夹  1  根据服务器提供的公网IP地址,用 Xshell 连接上 在当前目录下,通过 # mkdir jty-nx,创建一个项目部署文件夹, jty-nx:是文件名   2、创建Dockerfil...
    99+
    2023-09-23
    docker java 容器
  • docker部署golang项目
    随着云计算和微服务架构的兴起,容器技术也越来越受到开发者的关注。其中Docker是目前最流行的容器化解决方案之一。本文将介绍如何使用Docker来部署Golang项目,使得我们的应用程序能够更加方便地管理和部署。一、Docker基础知识Do...
    99+
    2023-05-15
  • docker nginx如何部署多个项目
    今天小编给大家分享一下docker nginx如何部署多个项目的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2024-04-02
  • 如何在docker中部署crownblog项目
    本篇文章为大家展示了如何在docker中部署crownblog项目,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前端项目打包找到.env.production 修改为自己的ip或者域名地址执行命令n...
    99+
    2023-06-15
  • 如何使用docker部署react项目
    今天小编给大家分享一下如何使用docker部署react项目的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。使用docker部...
    99+
    2023-07-04
  • 如何实现Docker部署vue项目
    这篇文章主要介绍“如何实现Docker部署vue项目”,在日常操作中,相信很多人在如何实现Docker部署vue项目问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现Do...
    99+
    2024-04-02
  • Docker如何搭建部署Node项目
    这篇文章给大家分享的是有关Docker如何搭建部署Node项目的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。什么是DockerDocker 是比虚拟机还要轻量级的虚拟化技术,它虚拟化的实体就叫做容器。容器本身就是...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作