在SpringBoot中怎么将Docker部署?将Docker部署的方法分享!

2021-09-03 10:47:51 浏览数 (2252)

Spring Boot Docker 部署,为在 Docker 容器上部署我们的 Spring Boot 微服务打开了大门。让我们来看看这个过程! 

什么是 Docker?

Docker 是一个平台,使开发人员能够以容器化应用程序的形式开发、发布和执行应用程序。

它通过为您的应用程序创建一个轻量级的可执行包来实现这一点。此包包括应用程序代码以及应用程序运行所需的所有依赖项。依赖关系可以是环境变量、库、工具等。

这样的可执行包通常也称为映像。一个正在运行的镜像是一个容器。

Docker 本身就是一个庞大的话题。如果您想了解更多信息,我有一篇关于 Docker 基础知识的详细文章。

使用 Dockerfile 定义 Docker 镜像

要为我们的 Spring Boot Docker 部署创建 Docker 映像,我们需要在项目的根目录中创建一个Dockerfile。

以下是典型 Spring Boot 应用程序的 Dockerfile 内容。

# Start with base image
FROM openjdk:8-jdk-alpine
# Add Maintainer Info
LABEL maintainer="Progressive Coder"
# Add a temporary volume
VOLUME /tmp
# Expose Port 8080
EXPOSE 8080
# Application Jar File
ARG JAR_FILE=target/spring-boot-starter-0.0.1-SNAPSHOT.jar
# Add Application Jar File to the Container
ADD ${JAR_FILE} spring-boot-starter.jar
# Run the JAR file
ENTRYPOINT ["java", "-jar", "/spring-boot-starter.jar"]

让我们来看看 Dockerfile 中的每一步。

FROM: 此语句用于表示我们的新 Docker 映像将使用的基本映像。在上面的示例中,我们使用了OpenJDK 8映像。这是运行 Java 应用程序的一个非常轻量级的选项。

LABEL:此指令用于向图像添加某种类型的元数据。在这种情况下,我们添加了名为MAINTAINER的元数据。

VOLUME:Volume 指令在容器中创建一个挂载点。您还可以将挂载点映射到主机操作系统上的目录。卷的典型用例是存储由我们的应用程序生成的日志文件。

EXPOSE:这是一条重要的指令。它允许我们向外界公开特定的端口。在我们的示例中,我们公开端口 8080。

ARG:该指令用于定义一个具有默认值的变量。在我们的例子中,我们将它设置为 JAR 文件的位置。

添加:在本指令中,我们基本上是将文件和目录复制到我们的 docker 镜像。

ENTRYPOINT:最后但并非最不重要的是,ENTRYPOINT 是您配置应如何执行应用程序的地方。在我们的例子中,我们指定了如何运行 JAR 文件。

创建 Docker 镜像

现在是创建 Docker 镜像的时候了。为此,我们需要在 Spring Boot 项目区域中准备好 JAR 文件。

要创建 JAR 文件,请执行以下命令。

mvn clean package

现在要构建 Dockerfile,需要运行以下命令:

docker build -t spring-boot-starter .

执行此命令后,您将能够看到正在构建的映像。如果您执行以下命令,您可以看到图像列表:

docker image ls

运行 Docker 镜像

现在镜像已成功构建,您可以使用Docker Run命令运行 Docker 镜像。

docker run spring-boot-starter

基本上,我们要求 Docker 运行标记为spring-boot-starter的镜像。换句话说,这就是我们在这篇文章中一直针对的 Spring Boot Docker 部署。

这将创建一个容器,应用程序将开始运行。要查看当前运行的容器列表,您可以使用以下命令:

docker ps

可以通过http://localhost:8080访问该应用程序

您还可以通过发出以下命令来运行容器来更改容器的端口。

docker run -p 5000:8080 spring-boot-starter

基本上,这里的 5000 是主机操作系统上的端口。我们将容器上的端口 8080 映射到主机操作系统上的端口 5000。

如果你想停止正在运行的容器,你可以按CTRL + C。

结论

这样,我们就成功地为我们的微服务创建了一个Spring Boot Docker 部署。

我们首先创建了一个 Docker 镜像,然后在主机操作系统上运行它。Docker Image 也可以通过 Docker Hub 公开共享。通常,企业也有内部 Docker 注册表,其中存储图像以备将来使用。我们将在以后的文章中探讨这些概念。对于源码我们可以在Github上找到