使用 Docker 启动 Spring Boot 应用程序

Docker 已经逐渐成为现代云应用程序交付的标准工具。利用 Docker,我们能够很方便地将我们的应用程序打包和部署,而 Spring Boot 则是构建微服务的一个流行选择。本文将介绍如何使用 Docker 来启动一个简单的 Spring Boot 应用,并提供相关的代码示例。

1. 环境准备

在开始之前,确保你已经安装了以下工具:

  • [Docker](
  • [Java Development Kit (JDK)](
  • [Maven](

接下来,我们将创建一个简单的 Spring Boot 应用程序。

2. 创建 Spring Boot 应用

首先,使用 Spring Initializr 创建一个新的 Spring Boot 项目。我们可以选择 Web 依赖,并使用 Maven 构建工具。这里使用的基本代码如下:

pom.xml 文件

<project xmlns="
         xmlns:xsi="
         xsi:schemaLocation=" 
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>11</java.version>
        <spring-boot.version>2.5.4</spring-boot.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

DemoApplication.java 文件

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @GetMapping("/hello")
    public String hello() {
        return "Hello, Docker!";
    }
}

3. 创建 Dockerfile

在项目的根目录下,创建一个名为 Dockerfile 的文件,内容如下:

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

# 将 jar 文件复制到容器中
COPY target/demo-0.0.1-SNAPSHOT.jar app.jar

# 指定容器启动时的命令
ENTRYPOINT ["java", "-jar", "/app.jar"]

4. 构建和运行 Docker 容器

接下来,在终端中执行以下命令构建项目和 Docker 镜像:

# 编译项目
mvn clean package

# 构建 Docker 镜像
docker build -t spring-boot-demo .

构建完成后,可以使用以下命令运行 Docker 容器:

docker run -p 8080:8080 spring-boot-demo

现在,Spring Boot 应用已经在 Docker 容器中启动。你可以在浏览器中访问 http://localhost:8080/hello,查看应用的返回值。

5. 关系图

以下是应用程序组件之间的关系图:

erDiagram
    APPLICATION {
        string name
        string version
    }
    CONTAINER {
        string id
        string image
    }
    APPLICATION ||--o{ CONTAINER : runs_in

在这个图中,APPLICATION 表示我们的 Spring Boot 应用,CONTAINER 表示 Docker 容器,二者之间存在着运行关系。

6. 甘特图

为了更好地理解项目的开发进度,下面是一个简单的开发甘特图:

gantt
    title Spring Boot Docker Project Timeline
    dateFormat  YYYY-MM-DD
    section Initialization
    Create Spring Boot App     :a1, 2023-10-01, 5d
    section Dockerization
    Write Dockerfile            :after a1  , 3d
    Build and Run Container     :after a1  , 2d

结尾

通过本文,我们学习了如何使用 Docker 来启动一个简单的 Spring Boot 应用。这种方式不仅提升了应用的可移植性,还简化了部署流程。无论是开发还是生产环境,Docker 都可以帮助我们快速构建和部署应用。希望你在自己的项目中能够尝试使用 Docker,让开发变得更加高效与便捷!