使用 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 的作用尤为显著。

相关推荐
yl--炼气5 分钟前
windows下wsl-ubuntu子系统的位置怎样从C盘转到其他盘
linux·运维·ubuntu
博睿谷IT99_32 分钟前
红帽认证 Linux安全 级别
linux·运维·安全
燃星cro1 小时前
参照Spring Boot后端框架实现序列化工具类
java·spring boot·后端
超爱吃香菜的菜鸟1 小时前
关于我的服务器
运维·服务器
Cv打怪升级1 小时前
ubuntu 常用指令
linux·运维·ubuntu
用手码出世界1 小时前
【Linux】进程池bug、命名管道、systemV共享内存
linux·运维·bug
帽儿山的枪手1 小时前
程序员必掌握的docker命令
docker·容器·kubernetes
重生之我是cxk2 小时前
docker多架构镜像构建
docker·容器·架构
Ares-Wang2 小时前
kubernetes》》k8s》》ConfigMap 、Secret
云原生·容器·kubernetes
半吊子的程序狗2 小时前
docker测试镜像源
运维·docker·容器