【初识 Docker | 中级篇】 Docker 中部署 Spring Boot 微服务详解

这篇具有很好参考价值的文章主要介绍了【初识 Docker | 中级篇】 Docker 中部署 Spring Boot 微服务详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

本文将为您详细介绍如何在Docker容器中部署Spring Boot服务。

首先,您需要为您的Spring Boot应用程序创建一个Docker镜像。然后将镜像在Docker容器中运行起来即可


提示:以下是本篇文章正文内容,下面案例可供参考

一、生成 Docker 镜像

1.编写Dockerfile

FROM openjdk:8-oracle
MAINTAINER cat

# 在主机 /var/lib/docker目录下创建一个临时文件,并链接到容器的 /tmp
VOLUME /tmp

# 将jar包添加到容器中,并命名为 springboot_docker.jar
ADD springboot-api-0.0.1-SNAPSHOT.jar /springboot_docker.jar
# 运行jar包
RUN bash -c 'touch /springboot_docker.jar'
ENTRYPOINT ["java", "-jar", "/springboot_docker.jar"]

# SpringBoot项目配置的端口号为8083,需要将8083暴露出去
EXPOSE 8083

这个Dockerfile文件使用alpine Linux操作系统和OpenJDK 8图像作为基础映像,将Spring Boot应用程序的JAR文件复制到springboot_docker.jar路径,然后使用ENTRYPOINT命令来启动应用程序。

2.构建镜像

将打包好的jar上传至服务器,与Dockerfile同一目录下
【初识 Docker | 中级篇】 Docker 中部署 Spring Boot 微服务详解,初识Docker,docker,spring boot,微服务,云原生

执行如下命令

docker build -t springboot_docker .

说明:docker build -t 镜像名称:标签 Dockerfile的相对位置,点号为寻址路径代表当前目录,不写tag默认是latest。

生成docker镜像如下:

【初识 Docker | 中级篇】 Docker 中部署 Spring Boot 微服务详解,初识Docker,docker,spring boot,微服务,云原生

二、启动容器

1.运行服务

执行命令docker run -d -p 8083:8083 --name myapp springboot_docker ,查看日志 docker logs -f -t --tail 行数 容器名

【初识 Docker | 中级篇】 Docker 中部署 Spring Boot 微服务详解,初识Docker,docker,spring boot,微服务,云原生

🚫出现报错:

Exception in thread "main" java.lang.UnsupportedClassVersionError:com/example/myweb/xxxApplication has been 
compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime 
only recognizes class file versions up to 52.0

✅解决方法:

  • 编译版本和运行版本不一致,可能是编译版本高于运行版本导致的
  • 为spring-boot-maven-plugin增加的版本号

看一下项目JDK为17,修改为JDK8,重新编译打包,成功启动

【初识 Docker | 中级篇】 Docker 中部署 Spring Boot 微服务详解,初识Docker,docker,spring boot,微服务,云原生

2.测试

浏览器输入http://ip:8083/demo-api/hello/world

【初识 Docker | 中级篇】 Docker 中部署 Spring Boot 微服务详解,初识Docker,docker,spring boot,微服务,云原生

三、jar包映射部署

根据上述步骤成功通过docker部署springboot服务,但是这样在启动容器后,每次需更新jar包时,都得重新制作镜像,再启动容器。流程及其繁琐,效率极低。

那如何在不更新镜像或者容器的前提下直接更新jar包完成部署呢?

1.更新Dockerfile文件

FROM openjdk:8-jdk-alpine

MAINTAINER cat

RUN mkdir -p /demo/springboot/logs \
    /demo/springboot/temp \
    /demo/skywalking/agent

WORKDIR /demo/springboot

ENV SERVER_PORT=8083

EXPOSE ${SERVER_PORT}

ADD /springboot-api-0.0.1-SNAPSHOT.jar app.jar

ENTRYPOINT ["java", \
            "-Djava.security.egd=file:/dev/./urandom", \
            "-Dserver.port=${SERVER_PORT}", \
#            "-Dskywalking.agent.service_name=demo-springboot", \
#            "-javaagent:/demo/skywalking/agent/skywalking-agent.jar", \
            "-jar", "app.jar"]

2.构建镜像

docker build -t demo-springboot .

【初识 Docker | 中级篇】 Docker 中部署 Spring Boot 微服务详解,初识Docker,docker,spring boot,微服务,云原生

3.创建&启动容器

docker run --name demo-springboot -it -v /docker/java/demo/springboot-api-0.0.1-SNAPSHOT.jar:/demo/springboot/app.jar 
-v /dlogs:/demo/springboot/logs -d -p 8083:8083 demo-springboot

-v 宿主机目录关联容器目录。这样宿主机的/docker/java/demo目录就与docker的/demo/springboot/目录进行映射。(这里还映射了日志目录)

这样的话,当jar包发生变动时,直接更新宿主机的/docker/java/demo/目录下的jar包即可,更新jar包之后需要将容器重启一下。

docker restart 容器id

总结

以上就是今天要讲的内容,本文仅仅简单介绍了如何在Docker容器中部署Spring Boot服务,以上方法亲测有效,希望能给大家一个参考。

⭕关注博主,不迷路 ⭕

创作不易,关注💖、点赞👍、收藏🎉就是对作者最大的鼓励👏,欢迎在下方评论留言🧐文章来源地址https://www.toymoban.com/news/detail-559995.html

到了这里,关于【初识 Docker | 中级篇】 Docker 中部署 Spring Boot 微服务详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker部署spring boot项目

    在docker部署时首先要保证一般部署能够访问。 目前主流的java框架为spring,软件包为jar包,只需以jar为基础构建容器环境。打包为jar后只需要jvm就可以运行,因此需要以jdk为镜像构建容器。 基于命令构建jdk环境 拉取openjdk镜像: docker pull openjdk:8 上传web文件,启动容器和web服务

    2024年02月03日
    浏览(39)
  • [AIGC] Spring Boot Docker 部署指南

    近年来,容器化部署成为了越来越流行的部署方式。Docker 是目前最受欢迎的容器化平台之一,它提供了一种将应用程序与其依赖项打包在一起,并以容器的形式运行的方法。Spring Boot 是一种用于快速开发和微服务架构的框架,它与 Docker 结合使用可以简化应用的部署和管理过

    2024年01月17日
    浏览(59)
  • IDEA快速部署Spring Boot 项目到Docker

    我们通常使用TCP的方式连接Docker,所以我们需要配置Docker并开放端口,如果是本地虚拟机,可以简单使用http的方式进行连接(不建议),如果你是远程服务器,请 务必采用安全的连接方式(https) ; 自己的虚拟机 如果是自己的虚拟机,可以不需要创建CA证书。可以使用 http://ip:端

    2023年04月10日
    浏览(45)
  • Docker 部署 Spring Boot 项目(含 MySQL + Redis )

    注意事项:如果需要将 Spring Boot 项目的日志文件挂载到本地,则在打包前需要先在 yml 进行如下配置: 这里的 info 指的是日志等级,可以根据需要进行修改,日志等级主要有以下几种: trace :最低的日志级别,用于记录非常详细的信息,通常仅在诊断问题时使用。 debug :用

    2024年01月21日
    浏览(46)
  • IDEA 集成 Docker 插件一键部署 Spring Boot 应用

    🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请纠正! 随着容器化技术的崛起,Docker成为了现代软件开发的关键工具。在Java开发中,Spring Boot是一款备受

    2024年02月05日
    浏览(46)
  • 使用Spring Boot和Docker快速部署Java应用程序

    随着微服务的兴起,容器化技术已成为现代应用程序开发和部署的关键部分。Docker作为一种流行的容器化解决方案,广泛应用于企业和开发者社区。与此同时,Spring Boot作为一种优秀的Java开发框架,大大简化了基于Spring的应用程序开发。在本文中,我们将探讨如何将Spring Bo

    2024年02月01日
    浏览(62)
  • 一文看懂 win 10安装docker并部署spring boot项目

    目录 1、下载docker安装包 2、win 10环境准备 3、安装Docker Desktop 4、验证Docker安装 5、部署spring boot项目  5.1、pom.xml中添加docker依赖 5.2、添加Dockerfile文件 5.3、镜像文件 5.4、验证 Docker Desktop是Docker在win 10操作系统上的安装方式,首先到Docker Desktop官网下载安装包,安装地址Instal

    2024年02月07日
    浏览(56)
  • Docker和Kubernetes部署Spring Boot项目:如何灵活修改配置文件?

      大家好,我是G探险者,今天我们来聊一下通过容器化部署的springboot项目,如何灵活的修改配置文件。 有同事问我,我们的springboot项目是容器化部署,使用的是K8S容器编排平台,部署上去后,修改项目里面的配置不太方便,还需要进入到容器内部进行修改,太麻烦了,怎么

    2024年02月10日
    浏览(43)
  • Spring Boot与Docker的完美融合:从开发到部署的实战

    一、Spring Boot与Docker简介 Spring Boot框架特点与优势概述 Spring Boot 是一个由Pivotal团队开发的用于简化新Spring应用初始搭建以及开发过程的框架。它的核心特点和优势包括: 简化配置 :Spring Boot采用约定优于配置的方式,减少了大量的XML配置工作,通过自动配置功能极大地加速

    2024年04月26日
    浏览(43)
  • Spring Boot实践 --windows环境下 K8s 部署 Docker

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),用社区版就可以了。 Docker 包括三个基本概念: 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统

    2024年02月06日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包