扩展您的春季启动应用程序
#java #spring #springboot #docker

Docker彻底改变了我们开发应用程序的方式。它从开发软件期间的一系列问题中删除了“它在我的机器中起作用”问题。

我认为,Docker是您应该将其添加到技术堆栈中的强制性内容之一,因为他们的需求是在Docker中增加知识。因此,学习Docker以保持最新状态!

什么是Docker

让我们看看流行平台如何描述什么是docker。

Docker是一个软件平台,可让您快速构建,测试和部署应用程序。 Docker将软件包装到称为containers的标准化单元中,这些单元具有运行所需的所有内容,包括库,系统工具,代码和运行时。使用Docker,您可以快速部署和扩展应用程序到任何环境中,并知道您的代码将运行。 -AWS-

Docker是一个开源平台,它使开发人员能够构建,部署,运行,更新和管理容器标准化的可执行组件,可将应用程序源代码与操作系统(OS)结合起来(OS)在任何环境中运行该代码所需的库和依赖项。 -IBM-

Docker是开发,运输和运行应用程序的开放平台。使用Docker,您可以将应用程序与基础架构分开,并像托管应用程序一样对待基础架构。 Docker可以帮助您更快地运输代码,更快地测试,更快地部署并缩短编写代码和运行代码之间的周期。 Docker通过将内核容器化功能与工作流程和工具相结合来帮助您管理和部署应用程序。 -Google-

简而言之,Docker可以成为一种工具,可以使您的开发旅程比没有它更顺畅,更快。它允许您快速构建,包装和部署应用程序。它可以帮助您管理依赖关系以运行应用程序。 Docker还促进了更快的代码运输,测试和部署,减少了代码开发和执行之间的时间。

您必须知道6个Docker的核心组件:

  1. Docker Engine 。 Docker的核心组成部分。它负责构建和运行容器。 Docker Engine管理容器的生命周期,包括图像管理,容器执行和资源隔离。它由:

    组成
    • 在主机机器上运行的Docker守护程序
    • Docker Client ,它提供了用于与守护程序互动的注释线接口(CLI)。
  2. docker Images 。一个只读模板,其中包含在容器中运行应用程序的必要文件和依赖项。图像是由Dockerfile构建的,该文本文件指定了创建图像的说明。图像也可以从Docker Hub或其他图像注册表中提取。

  3. docker容器。 Docker图像的运行实例。它为应用程序运行提供了一个孤立的环境应用程序,以确保应用程序及其依赖关系在不同的环境中保持一致。

  4. Docker注册表。用于存储和分发Docker图像的中央存储库,例如Docker Hub

  5. docker组成。定义和管理多容器应用程序的工具。它使用YAML文件来描述应用程序所需的服务,网络和配置。

  6. docker swarm 。 Docker提供的本机聚类和编排解决方案。它允许用户创建和管理一群Docker节点,形成分布式系统。

Docker的工作原理

要知道Docker的工作原理,最好将其与旧技术(VM)(VM)进行比较。

Container vs VM

我从AWS - What is Docker?文章中拍摄了此图像。

在传统的VM中,每个应用程序都位于独立的虚拟OS上方。当然,这种方法为每个应用程序提供了完美的隔离。但是,这给我们带来了巨大的成本来运行所有VM。这种结果是我们要使用Docker解决的问题。我们可以利用Docker Engine管理所有应用程序(作为容器)独立运行(完全隔离),而不是为每个应用程序虚拟化操作系统。使用Docker而不是VM管理依赖项也更简单。

让我们对您的Spring Boot应用程序进行扩展

对于此项目,您可以将我提供的存储库here from my GitHub用作示例。

第一步,您需要构建Spring Boot应用程序。通过下面使用此命令。它将从您的Spring Boot应用中产生可运行的.jar文件。

$ ./gradlew build

其次,在项目的根目录中制作一个Dockerfile文件。用下面的代码填充文件。

FROM openjdk:17-oracle
EXPOSE 8080
RUN mkdir -p /app/
ADD build/libs/spring-docker-demo-0.0.1-SNAPSHOT.jar /app/example.jar
ENTRYPOINT ["java", "-jar", "/app/example.jar"]

第三,使用以下代码在root目录中制作一个docker-compose.yml文件。

version: '3'
services:
  example-project:
    ports:
      - 8080:8080
    image: example-project
    build:
      context: .
      dockerfile: Dockerfile
    container_name: example-project
    restart: always

第四,我们使用docker-compose命令来构建docker映像,从图像中创建容器,然后运行它。有时需要一段时间,因为我们需要下载必要的依赖项来运行容器。

$ docker-compose up -d

第六,安装完成后。您可以通过使用docker ps命令检查它是否成功。如果您可以在列表中找到新容器,那么您已经成功并且已经运行了。

$ docker ps
CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS          PORTS                    NAMES
133109f2d973   example-project   "java -jar /app/exam…"   20 seconds ago   Up 18 seconds   0.0.0.0:8080->8080/tcp   example-project

最后,这意味着您已经在Docker环境中安装了Spring Boot应用程序。您可以尝试使用HTTP客户端应用程序链接卷曲,邮递员,甚至直接从浏览器进行API。

$ curl http://localhost:8080
{"message":"Hello World!"}

结论

从现在开始,让我们学习Docker!有必要添加您成为最新软件工程师的技能。

希望您有一个很好的实验时刻!