当前位置: 首页 > article >正文

使用 Docker 部署 Spring Boot 项目流程

文章目录

  • 使用 Docker 部署 Spring Boot 项目流程
    • 1. 构建 Spring Boot 项目
      • 使用 Maven 构建项目:
      • 使用 Gradle 构建项目:
    • 2. 创建 Dockerfile
      • 示例 Dockerfile:
        • 解释:
    • 3. 构建 Docker 镜像
    • 4. 运行 Docker 容器
    • 5. 查看容器日志
    • 6. 管理 Docker 容器
      • 查看正在运行的容器:
      • 停止容器:
      • 删除容器:
      • 删除镜像:
    • 7. 访问 Spring Boot 应用
    • 总结

使用 Docker 部署 Spring Boot 项目流程

Docker 已成为现代软件开发中不可或缺的一部分,尤其是在开发和生产环境中,使用 Docker 可以确保应用的一致性、可移植性以及易于扩展。将 Spring Boot 项目容器化并通过 Docker 部署,不仅可以简化开发与运维流程,还能使应用具备更高的可移植性和可扩展性。本文将详细介绍如何使用 Docker 部署 Spring Boot 项目。

为什么选择 Docker?

Docker 提供了一个标准化的容器环境,允许开发者将应用及其所有依赖打包成一个轻量级的容器,确保应用在任何环境中都能运行。以下是使用 Docker 部署 Spring Boot 项目的几个好处:

  • 跨平台支持:无论是开发环境、测试环境,还是生产环境,Docker 确保你的应用以相同的方式运行。
  • 简化部署:Docker 镜像将应用及其依赖打包在一起,方便迁移和部署。
  • 快速启动和隔离:Docker 容器启动速度非常快,且容器之间相互隔离,避免了资源冲突。

1. 构建 Spring Boot 项目

在开始使用 Docker 部署之前,首先需要构建 Spring Boot 项目并生成可执行的 JAR 文件。如果你还没有构建过 Spring Boot 项目,可以通过以下步骤完成构建。

使用 Maven 构建项目:

mvn clean package

使用 Gradle 构建项目:

./gradlew build

构建完成后,你将在 target 目录下看到生成的 .jar 文件,通常命名为 your-application-name.jar


2. 创建 Dockerfile

在项目的根目录下创建一个名为 Dockerfile 的文件,Dockerfile 用来定义如何构建 Docker 镜像。

示例 Dockerfile:

# 使用 OpenJDK 作为基础镜像
FROM openjdk:11-jre-slim

# 将 Spring Boot 构建的 JAR 文件复制到容器中
COPY target/myapp-1.0.0.jar /app/myapp.jar

# 配置容器启动时执行的命令
ENTRYPOINT ["java", "-jar", "/app/myapp.jar"]

# 暴露容器端口(Spring Boot 自定义使用 10010 端口)
EXPOSE 10010
解释:
  • FROM openjdk:11-jre-slim:指定基础镜像为 OpenJDK 11 的轻量版本。
  • COPY target/myapp-1.0.0.jar /app/myapp.jar:将构建好的 Spring Boot JAR 文件复制到容器内的 /app/myapp.jar
  • ENTRYPOINT:定义容器启动时执行的命令,这里是运行 JAR 文件。
  • EXPOSE 10010:声明容器监听的端口,Spring Boot 自定义使用 10010 端口。

3. 构建 Docker 镜像

在项目的根目录(与 Dockerfile 文件同级)执行以下命令,构建 Docker 镜像:

docker build -t myapp:1.0 .
  • -t myapp:1.0:为镜像打上标签(myapp 是镜像名称,1.0 是版本号)。
  • .:指定当前目录为构建上下文,Docker 会在当前目录查找 Dockerfile。

构建完成后,你可以使用以下命令查看构建的镜像:

docker images

4. 运行 Docker 容器

构建完镜像后,使用以下命令来运行容器:

docker run -d -p 10010:10010 --name myapp-container myapp:1.0
  • -d:让容器在后台运行。
  • -p 10010:10010:将容器的 10010 端口映射到主机的 10010 端口。
  • --name myapp-container:指定容器的名称为 myapp-container
  • myapp:1.0:指定使用的镜像。

通过此命令,Spring Boot 项目将在容器中启动,并且你可以通过 http://localhost:10010 访问该应用。


5. 查看容器日志

容器启动后,可以查看 Spring Boot 应用的日志,确保应用正常启动。

docker logs -f myapp-container
  • -f:持续输出日志,类似 tail -f

6. 管理 Docker 容器

你可以使用以下命令来管理 Docker 容器。

查看正在运行的容器:

docker ps

停止容器:

docker stop myapp-container

删除容器:

docker rm myapp-container

删除镜像:

docker rmi myapp:1.0


7. 访问 Spring Boot 应用

当容器启动完成后,你可以通过浏览器或者其他工具访问应用:

http://localhost:10010

注意

项目启动成功,无法访问网站的问题,有可能Linux服务器防火墙没有将10010端口放行,放行命令:

firewall-cmd --zone=public --add-port=10010/tcp --permanent
firewall-cmd --reload #配置完刷新

配置完之后使用firewall-cmd --list-all验证是否生效,显示如下信息:
在这里插入图片描述


总结

通过 Docker 部署 Spring Boot 项目可以极大简化应用的部署和运维流程。Docker 提供了一种隔离且轻量的方式,确保应用在不同环境中的一致性和可移植性。将应用容器化不仅便于管理,还能提高部署的效率。

本文介绍了如何:

  1. 构建 Spring Boot 项目。
  2. 创建 Dockerfile 文件来定义容器。
  3. 构建和运行 Docker 镜像与容器。

随着项目规模的增大,使用 Docker 管理应用程序将变得更加高效,特别是在微服务架构下,Docker 的作用尤为显著。


http://www.kler.cn/a/420353.html

相关文章:

  • 在Java中使用Apache POI导入导出Excel(六)
  • 夜神模拟器+Charles+postern+Mgisk+TrustMeAlready实现抓包
  • 学习笔记052——Spring Boot 自定义 Starter
  • 【ONE·基础算法 || 动态规划(三)】
  • UICollectionView在xcode16编译闪退问题
  • TYUT设计模式大题
  • STM32 ADC --- 多通道序列采样
  • 应对智能时代——读《人工智能时代的生存指南》
  • TP6 html生成ptf并加盖骑缝章
  • 运输层2——UDP协议
  • liteflow 架构详解
  • springboot370高校宣讲会管理系统(论文+源码)_kaic
  • 相较于传统的实体展厅,VR虚拟展厅有哪些优势?
  • vue3的项目目录和关键文件
  • Hive中分区与分桶的区别
  • windows C#-强制转换和类型转换
  • AI获客的成本与传统获客方式相比有何优势?
  • 【vue for beginner】ref和reactive
  • SQL面试题——日期交叉问题 合并日期重叠的活动
  • 基于单片机的多功能宠物窝的设计
  • 什么是名称服务器?(它如何工作?)
  • Zariski交换代数经典教材Commutative Algebra系列(pdf可复制版)
  • 数据结构初阶--算法复杂度(1)
  • 查看虚拟机的MAC地址
  • 02_Django路由Router
  • 【基础分析】——Qt 信号和槽的机制 优点