使用 Docker 部署 Spring Boot 项目流程

文章目录

  • [使用 Docker 部署 Spring Boot 项目流程](#使用 Docker 部署 Spring Boot 项目流程)
    • [1. 构建 Spring Boot 项目](#1. 构建 Spring Boot 项目)
      • [使用 Maven 构建项目:](#使用 Maven 构建项目:)
      • [使用 Gradle 构建项目:](#使用 Gradle 构建项目:)
    • [2. 创建 Dockerfile](#2. 创建 Dockerfile)
      • [示例 Dockerfile:](#示例 Dockerfile:)
    • [3. 构建 Docker 镜像](#3. 构建 Docker 镜像)
    • [4. 运行 Docker 容器](#4. 运行 Docker 容器)
    • [5. 查看容器日志](#5. 查看容器日志)
    • [6. 管理 Docker 容器](#6. 管理 Docker 容器)
    • [7. 访问 Spring Boot 应用](#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 构建项目:

bash 复制代码
mvn clean package

使用 Gradle 构建项目:

bash 复制代码
./gradlew build

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


2. 创建 Dockerfile

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

示例 Dockerfile:

bash 复制代码
# 使用 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 镜像:

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

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

bash 复制代码
docker images

4. 运行 Docker 容器

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

bash 复制代码
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 应用的日志,确保应用正常启动。

bash 复制代码
docker logs -f myapp-container
  • -f:持续输出日志,类似 tail -f

6. 管理 Docker 容器

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

查看正在运行的容器:

bash 复制代码
docker ps

停止容器:

bash 复制代码
docker stop myapp-container

删除容器:

bash 复制代码
docker rm myapp-container

删除镜像:

bash 复制代码
docker rmi myapp:1.0


7. 访问 Spring Boot 应用

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

bash 复制代码
http://localhost:10010

注意

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

bash 复制代码
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 的作用尤为显著。

相关推荐
HEX9CF16 分钟前
【Anaconda】Anaconda3 下载与安装教程(Ubuntu 22.04)
linux·运维·ubuntu
paopaokaka_luck25 分钟前
[384]基于springboot的药品管理系统
java·spring boot·后端
it噩梦28 分钟前
k8s Quality of Service
云原生·容器·kubernetes
九转成圣1 小时前
详解日志格式配置:XML 与 Spring Boot 配置文件格式
xml·spring boot·后端
{⌐■_■}1 小时前
【docker】docker build上下文
java·docker·容器
joker D8881 小时前
【CUDA】CUDA Hierarchy
linux·cuda·c/c++·并行计算
Tassel_YUE1 小时前
openEuler 22.03 使用cephadm安装部署ceph集群
运维·ceph·学习笔记·openeuler·技术分享·服务部署
Yuan_o_1 小时前
SpringBoot 统一功能处理
java·spring boot·后端
APItesterCris1 小时前
对于大规模的淘宝API接口数据,有什么高效的处理方法?
linux·服务器·前端·数据库·windows