你好朋友,

在本教程中,我们将看到如何对Spring Boot应用程序进行Docker化。通过dockerizing意味着我们将以Docker容器的形式运行应用程序。

Docker化Spring Boot应用程序

以下是涉及的步骤:

1.创建一个Spring Boot应用程序

2.在您的机器上安装Docker 3.在您的项目中创建一个Docker文件 4.使用docker文件构建Docker 5. Docker运行

让我们一一看一下这些步骤。

请遵循我的教程“ 如何使用Spring Initializer创建Spring Boot项目”以获取使用Spring Boot Initiailizer创建Spring Boot项目所需的步骤。

因此,一旦完成此步骤,就应该准备好在工作区中使用springBootApp项目。

Docker化Spring Boot应用程序

2.2登录Docker Hub。如果您没有帐户,请单击创建帐户创建一个新帐户。

Docker化Spring Boot应用程序


2.3在下面的屏幕上单击Download Docker Desktop。

Docker化Spring Boot应用程序

2.4单击“下载Windows的Docker桌面”以下载Windows的安装程序。

要下载Mac的安装程序,请单击“ Mac的Docker桌面”。

Docker化Spring Boot应用程序

2.5请按照此处提到的步骤从Installer安装Docker,您的Docker应该已启动并正在运行。

来自Docker Docs

–适用于Windows的Docker桌面安装包括:安装提供Docker Engine ,Docker CLI客户端, Docker ComposeDocker Machine
Kitematic

–使用Docker Desktop for Windows创建的容器和映像在安装它的机器上的所有用户帐户之间共享。 这是因为所有Windows帐户都使用相同的VM来构建和运行容器。

–嵌套虚拟化方案(例如在VMWare或Parallels实例上运行Windows的Docker桌面)可能会起作用,但不能保证。

在创建docker文件之前,让我们了解什么是docker文件以及为什么需要它。

Docker文件是文本文件,具有一组指令或命令,这些指令或命令将由Docker守护程序执行以创建Docker映像。

Docker文件示例:

来自openjdk:8 u212-b04-jdk- Stretch
COPY target / springBootApp-0.0.1-SNAPSHOT.jar springBootApp-0.0.1-SNAPSHOT.jar
展览8080 ENTRYPOINT [“ java”,“-jar”,“ springBootApp-0.0.1-SNAPSHOT.jar”]

3.2为什么需要Docker File

通过基本执行docker文件,我们创建了一个docker映像,该映像包含运行应用程序viz所需的所有详细信息。 应用程序代码,系统库,工具。现在,我们可以在安装了docker的任何计算机上运行此映像,它将获得相同的执行环境。说我有多个环境,我的应用程序代码将在进入ST,ET等生产环境之前经历现在,如果我在任何这些(ST,ET,Prod)机器上执行此docker映像,它将确保该应用程序具有相同的执行环境。

另外值得一提的是,一旦我们运行docker镜像,它便成为了容器,我们可以通过执行以下命令来查看容器:

docker容器ls

要在Docker文件中执行命令或指令,我们需要在命令提示符下执行docker build命令,如下所示:

docker build -t <标签名称>

docker build命令从dockerfile和“上下文”构建docker映像。构建的上下文是位于指定PATH或URL中的一组文件。构建过程可以引用上下文中的任何文件。例如,我们的build可以使用COPY指令在上下文中引用文件。

在下面的示例中,PATH是当前目录(点),因此将通过使用项目文件夹中的文件和文件夹(从我们执行此命令的位置)来构建上下文

docker build -t <标签名称>

在以下示例中,

docker build -t“ springbootapp”。

docker build命令需要从放置了docker文件的项目的根目录执行,并且文件名必须是dockerfile(不区分大小写)。当我们执行docker build时,docker文件中的所有指令都将被执行由一个创建一个docker镜像,其名称在“标签名称”中给出。

我们可以通过执行以下命令来检查新创建的docker镜像:

码头工人形象l s

使用URL参数,我们可以提及Github或bitbucket存储库的URL。然后Docker构建将递归地从该存储库中提取目录,子目录,文件,并将其用作构建上下文并将其发送到Docker守护程序。

docker build -t <标签名称> <存储库URL>


在这种情况下,docker将克隆远程存储库,并将克隆的存储库用作构建上下文。

Docker run命令运行docker映像。 docker映像的运行时实例称为docker容器。

docker run -p 8080:8080 <映像名称>
默认情况下,容器不发布任何端口,这里我们将容器的端口8080映射到主机的端口8080。

因此,基本上,在docker运行之后,您的应用程序将启动并作为容器运行。

通过对我们的Java应用程序进行泊坞处理,我们确保我们的应用程序在DEV,ST,ET,PR上具有相同的执行环境,以确保应用程序行为不会因应用程序环境(DEV,ST等)的更改而改变。

参考文献:

https://docs.docker.com/

翻译自: https://www.javacodegeeks.com/2019/08/dockerizing-spring-boot-application-2.html

相关文章: