使用Podman Desktop对Spring Boot应用程序进行容器化

2025/04/23

1. 概述

在本教程中,我们将学习如何使用Podman Desktop对Spring Boot应用程序进行容器化,Podman是一个容器化工具,它允许我们无需守护进程即可管理容器。

Podman Desktop是一个具有图形用户界面的桌面应用程序,用于使用Podman管理容器

为了演示它的用法,我们将创建一个简单的Spring Boot应用程序,构建一个容器镜像,并使用Podman Desktop运行一个容器。

2. 安装Podman Desktop

首先,我们需要在本地机器上安装Podman Desktop才能开始使用,它适用于Windows、macOS和Linux操作系统。下载安装程序后,我们可以按照安装说明在我们的机器上设置Podman Desktop。

以下是设置Podman Desktop的几个重要步骤:

  • Podman应该安装在机器上,如果没有安装,Podman Desktop会提示并为我们安装。
  • Podman准备就绪后,系统将提示我们启动Podman机器,我们可以选择默认设置或根据需要自定义设置,这是运行容器之前所必需的。
  • 此外,对于Windows,我们需要先启用/安装WSL2(适用于Linux的Windows子系统),然后才能运行Podman。

在安装过程结束时,我们应该有一个正在运行的Podman机器,可以使用Podman Desktop应用程序进行管理,我们可以在Dashboard部分验证这一点

3. 创建Spring Boot应用程序

让我们创建一个小型Spring Boot应用程序,该应用程序将有一个REST控制器,当我们访问/hello端点时,它会返回“Hello,World!”消息。

我们将使用Maven构建项目并创建一个jar文件,然后,我们将创建一个Containerfile(在Docker上下文中也称为Dockerfile),我们将使用此文件使用Podman Desktop为我们的应用程序构建容器镜像。

3.1 设置项目

首先,我们将Spring Boot Starter Web依赖添加到我们的项目中:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>3.3.2</version>
    </dependency>
</dependencies>

此依赖提供了创建Spring Boot Web应用程序所需的库。

3.2 控制器

接下来,让我们创建REST控制器:

@RestController
public class HelloWorldController {
    @GetMapping("/hello")
    public String helloWorld() {
        return "Hello, World!";
    }
}

这里我们使用@RestController注解将类标记为控制器,并使用@GetMapping注解将方法映射到/hello端点,当我们访问此端点时,它会返回“Hello,World!”消息。

3.3 构建项目

我们可以通过在终端中运行以下命令来使用Maven构建项目:

mvn clean package

此命令编译项目、运行测试并在target目录中创建jar文件。

4. Containerfile

现在我们已经准备好了Spring Boot应用程序,让我们创建一个Containerfile来为我们的应用程序构建镜像,我们将在项目的根目录中创建此文件:

FROM openjdk:17-alpine
WORKDIR /app
COPY target/spring-boot-podman-desktop-1.0.0.jar app.jar
EXPOSE 8080
CMD ["java", "-jar", "app.jar"]

在此文件中:

  • 首先,我们使用openjdk:17-alpine镜像作为基础镜像
  • 接下来,我们将工作目录设置为/app
  • 然后,我们将Maven生成的jar文件复制到/app目录
  • 我们公开端口8080,这是Spring Boot应用程序的默认端口
  • 最后,我们使用CMD命令指定我们要在容器启动时使用java-jar命令运行jar文件

5. 使用Podman Desktop构建镜像

设置Containerfile后,让我们使用Podman Desktop应用程序来创建镜像。

首先,我们转到“Images”部分并单击“Build”按钮

接下来,我们将填写镜像的详细信息:

  • 设置镜像的名称
  • 选择Containerfile位置
  • 使用项目目录作为上下文目录
  • 我们还可以选择镜像的平台,这里使用默认值

以下是参数和值的示例:

填写完详细信息后,我们可以点击Build按钮来构建镜像,构建完成后,我们可以在Images部分找到该镜像。

6. 运行容器

现在我们已经准备好了镜像,我们可以使用该镜像运行容器。可以通过单击“Images”部分中hello-world-demo镜像旁边的“Run”按钮来执行此操作:

6.1 启动容器

接下来,我们将填写容器的详细信息,我们在Containerfile中设置的属性将被预先填充,我们可以根据需要自定义它们:

此时,端口映射和命令已经填好,如果需要,我们可以设置其他属性,例如环境变量、卷等,我们还可以设置容器的名称。

填写详细信息后,我们可以单击“Start Container”按钮来启动容器,这将打开“Container Details”部分并显示容器日志:

6.2 测试应用程序

容器启动后,我们可以通过打开浏览器并导航到http://localhost:8080/hello来访问该应用程序,我们将在页面上看到“Hello,World!”消息:

6.3 停止容器

要停止容器,我们单击上面Container Details部分中的Stop按钮。

或者,我们可以转到容器列表并单击该容器的Stop按钮:

7. 总结

在本文中,我们学习了如何使用Podman Desktop将Spring Boot应用程序容器化,我们创建了一个带有API端点的简单Spring Boot应用程序,并为其创建了一个Containerfile。然后,我们使用Podman Desktop应用程序构建了一个镜像,并使用该镜像运行了一个容器。最后,我们在容器启动后测试了我们的端点是否正常工作。

Show Disqus Comments

Post Directory

扫码关注公众号:Taketoday
发送 290992
即可立即永久解锁本站全部文章