一键部署SpringBoot到远程Docker容器

一键部署SpringBoot到远程Docker容器。小编来告诉你更多相关信息。一键部署Spring网小编为你介绍一键部署Spring的相关介绍,接下来小编就来介绍。在当今软件开发领域,应用程序的容器化部署已经成为...

一键部署SpringBoot到远程Docker容器。小编来告诉你更多相关信息。

一键部署Spring

网小编为你介绍一键部署Spring的相关介绍,接下来小编就来介绍。

在当今软件开发领域,应用程序的容器化部署已经成为一种流行的选择,Docker 提供了一个强大的容器化解决方案。

将 Spring Boot 项目打包到 Docker 容器中部署,有很多不同的方法,今天就和大家聊一聊如何将Spring Boot 项目一键打包到远程 Docker 容器,然后通过运行一个镜像的方式来启动一个 Spring Boot 项目

1. Docker安装

我这里使用的CentOS7安装Docker,之前以及介绍过了,这里就不详细介绍,大家可以自行去查看如何安装Docker

Docker 安装成功之后,需要修改 Docker 配置,开启允许远程访问 Docker 的功能,修改 /usr/lib/systemd/system/docker.service 文件,步骤如下:

  • 进入docker.service进行编辑
vim /usr/lib/systemd/system/docker.service
  • 添加以下内容
-H tcp://0.0.0.0:2375 

一键部署SpringBoot到远程Docker容器-图1

  • 配置完成,重启docker
systemctl daemon-reloadservice docker restart

Docker重启之后,Docker准备事情就完成了。

2. IDEA 准备

  • 在IDEA中安装Docker插件

File->Settings->Plugins

一键部署SpringBoot到远程Docker容器-图2

安装好Docker插件后,IDEA 重启

  • IDEA 配置Docker 远程连接

File->Settings->Build,Execution,Deployment->Docker 然后配置一下 Docker 的远程连接地址:

tcp://192.168.150.102:2375

一键部署SpringBoot到远程Docker容器-图3

配置完成后,会显示 Connection successful 表示链接Docker成功

3.项目准备

3.1. 创建Dockerfile

在项目根目录下创建Dockerfile,这是构建Docker镜像的文件,位置如下

一键部署SpringBoot到远程Docker容器。小编来告诉你更多相关信息。

一键部署Spring

一键部署SpringBoot到远程Docker容器-图4

Dockerfile内容如下:

FROM openjdk:11.0.12VOLUME /tmpADD target/spring-boot-jasypt-demo-1.0-SNAPSHOT.jar app.jarENTRYPOINT [\"java\",\"-jar\",\"/app.jar\"]

文件说明

  • FROM openjdk:11.0.12: 指定了基础镜像。在这里,使用的是 OpenJDK 11.0.12 镜像,它包含了 Java 运行时环境。
  • VOLUME /tmp: 这一行创建了一个卷(Volume)/tmp。在容器中,/tmp 将被用作临时目录,用于存储临时文件或其他需要持久化的数据
  • ADD target/spring-boot-jasypt-demo-1.0-SNAPSHOT.jar app.jar:将构建好的 Spring Boot 可执行 JAR 文件复制到容器中,并将其重命名为 app.jar。target/spring-boot-jasypt-demo-1.0-SNAPSHOT.jar 是相对于 Dockerfile 的路径,确保该路径正确
  • ENTRYPOINT [“java”,”-jar”,”/app.jar”]: 设置容器启动时执行的默认命令。这里,使用 java -jar /app.jar 启动 Spring Boot 应用程序。这是运行 Spring Boot 应用程序的标准方式。

4.配置Docker-Maven插件

在pom.xml中配置插件,内容如下

    com.spotify    docker-maven-plugin    1.2.2                        build-image            package                            build                                    http://192.168.150.102:2375        zbbmeta/${project.artifactId}                    ${project.version}                true        ${project.basedir}                                    /                ${project.build.directory}                ${project.build.finalName}.jar                        
  • execution节点: 配置当执行 mvn package 的时候,顺便也执行一下 docker:build
  • configuration节点: 配置 Docker 的主机地址,镜像的名称,镜像的 tags,其中 dockerDirectory 表示指定 Dockerfile 的位置。
  • resource节点: 配置一下 jar 的位置和名称即可。

5. 打包镜像

对项目使用package进行打包,镜像就可以上传到Docker服务器

一键部署SpringBoot到远程Docker容器-图5

打包第一次可能时间稍微久一点,因为Docker需要下载基础镜像openjdk:11.0.12

打包日志如下:

一键部署SpringBoot到远程Docker容器-图6

打包完成后,Docker服务器上就存在了项目镜像

一键部署SpringBoot到远程Docker容器。小编来告诉你更多相关信息。

一键部署Spring

一键部署SpringBoot到远程Docker容器-图7

6. 镜像运行

运行DOcker镜像方式存在两种方式

1、直接使用Docker命令在服务器上运行

docker run -d  --name   jasypt-demo  -p 8877:8877 zbbmeta/spring-boot-jasypt-demo:1.0-SNAPSHOT

2、IDED中运行Docker 我们之前安装了Docker插件,那么IDEA中就多了一个Docker选项

一键部署SpringBoot到远程Docker容器-图8

点击Docker下面的images,就可以显示,,服务器上存在的所有 Docker 镜像,如下:

一键部署SpringBoot到远程Docker容器-图9

选中我们要运行的镜像,右键单击,选中Create Container就可以创建出一个容器,如下图:

一键部署SpringBoot到远程Docker容器。小编来告诉你更多相关信息。

一键部署Spring

一键部署SpringBoot到远程Docker容器-图10

编写容器名称和绑定端口

一键部署SpringBoot到远程Docker容器-图11

一键部署SpringBoot到远程Docker容器-图12

一键部署SpringBoot到远程Docker容器。小编来告诉你更多相关信息。

一键部署Spring

一键部署SpringBoot到远程Docker容器-图13

  • 点击run运行容器

一键部署SpringBoot到远程Docker容器-图14

  • 显示结果

一键部署SpringBoot到远程Docker容器-图15

注意:有时候Create Container没有反应,我们需要取消Docker远程链接,然后重新链接

一键部署SpringBoot到远程Docker容器。小编来告诉你更多相关信息。

一键部署Spring

一键部署SpringBoot到远程Docker容器-图16

项目运行成功之后,在Postman输入远程服务器的地址http://192.168.150.102:8877/tutorial,就可以访问了

一键部署SpringBoot到远程Docker容器-图17

以上分享的一键部署Spring 及其 Boot到远程Docker容器的详细讲解,仅供大家参考建议!

阅读前请先查看【免责声明】本文内容由互联网用户自发贡献,该文观点仅代表作者本人,本站仅供展示。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 1217266901@qq.com 举报,一经查实,本站将立刻删除。 转载请注明出处:https://www.jingfakeji.com/tech/57821.html

上一篇 2024年02月05日 15:33
下一篇 2024年02月05日 15:33

相关推荐

  • 简述dubbo的分层设计

    简述dubbo的分层设计。小编来告诉你更多相关信息。简述dubbo的分层设计跟大家说一说简述dubbo的分层设计的相关经验,请看下面详细的介绍。Service,业务层,就是咱们开发的业务...

    2024年02月06日
    6
  • Redis事务实现原理(深入解析Redis事务的实现机制)

    深入解析Redis事务的实现机制,Redis事务实现原理。小编来告诉你更多相关信息。Redis事务实现原理关于这方面的知识你知道吗?Redis事务实现原理方面的内容,下面为您详细介绍事务开始MULTI命令的执行,标识着...

    2024年02月06日
    6
  • Vue.js入门指南从安装到创建第一个应用程序

    Vue.js入门指南从安装到创建第一个应用程序。小编来告诉你更多相关信息。Vue.js入门指南从安装到创建第一个应用程序为网友们详解Vue.js入门指南从安装到创建第一个应用程序方面的内容,一起跟随小编看看吧...

    2024年02月06日
    7
  • dubbo的工作流程

    dubbo的工作流程。小编来告诉你更多相关信息。dubbo的工作流程本文导读:dubbo的工作流程的教程内容,一起跟随小编看看吧!Start:启动Spring容器时,自动启动Dubb...

    2024年02月05日
    8
  • Dubbo支持的注册中心有哪些?

    Dubbo支持的注册中心有哪些?。小编来告诉你更多相关信息。Dubbo支持的注册中心有哪些今日重点为您介绍Dubbo支持的注册中心有哪些方面的知识,下面来一起了解一下吧。Zookeeper(官方...

    2024年02月05日
    7
  • 为什么netflix从大单体演进到联合网关了

    为什么netflix从大单体演进到联合网关了。小编来告诉你更多相关信息。为什么netflix从大单体演进到联合网关了小编为大家解答为什么netflix从大单体演进到联合网关了的电脑方面的小经验,接下来一起来...

    2024年02月05日
    7

联系我们

在线咨询: QQ交谈

邮箱:1217266901@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信