你好朋友,
在本教程中,我们将看到如何对Spring Boot应用程序进行Docker化。通过dockerizing意味着我们将以Docker容器的形式运行应用程序。
以下是涉及的步骤:
1.创建一个Spring Boot应用程序
2.在您的机器上安装Docker 3.在您的项目中创建一个Docker文件 4.使用docker文件构建Docker 5. Docker运行
让我们一一看一下这些步骤。
请遵循我的教程“ 如何使用Spring Initializer创建Spring Boot项目”以获取使用Spring Boot Initiailizer创建Spring Boot项目所需的步骤。
因此,一旦完成此步骤,就应该准备好在工作区中使用springBootApp项目。
2.2登录Docker Hub。如果您没有帐户,请单击创建帐户创建一个新帐户。
2.3在下面的屏幕上单击Download Docker Desktop。
2.4单击“下载Windows的Docker桌面”以下载Windows的安装程序。
要下载Mac的安装程序,请单击“ Mac的Docker桌面”。
2.5请按照此处提到的步骤从Installer安装Docker,您的Docker应该已启动并正在运行。
来自Docker Docs
–适用于Windows的Docker桌面安装包括:安装提供Docker Engine ,Docker CLI客户端, Docker Compose , Docker 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