概述
在这篇文章中,我们将探讨如何将我们的Spring Boot应用程序docker化。如今在软件开发领域,有一种做基于容器的部署的冲动。Docker 是一种开源技术,主要用于开发、运输和运行应用程序。一旦你将一个应用程序及其所有依赖项打包到Docker容器中,你就可以确保它在任何环境中运行。
术语
在我们深入了解应用程序的docker化过程之前,最好先了解一下docker术语。
Docker文件
- Docker文件是一个简单的文本文件,包含如何构建镜像的说明。
Docker镜像
- 一个Docker镜像包含一套创建可以在Docker平台上运行的容器的说明。
docker容器
- 容器是Docker镜像的实例,可以使用Docker运行命令来运行。Docker 的基本目的是运行容器。
docker hub/registry
- 注册表的工作原理基本类似于git仓库,允许你推送和拉动容器镜像。
docker compose
- Compose是一个用于定义和运行多容器Docker应用程序的工具。
docker volume
- 为了能够保存(持久化)数据,也为了在容器之间共享数据,Docker 提出了_卷_的概念。
让我们开始Dockerise!
1.创建Jar文件
作为第一步,你需要使用下面的命令来创建一个可执行的jar文件。
- 如果你使用的是maven
$ mvn clean install
- 如果你使用的是Gradle
$ gradle build
你应该能在spring boot项目的目标文件夹下看到生成的jar。这个jar文件的好处是,我们可以像运行一个控制台应用程序一样运行这个Web应用程序。所以我们的下一步是创建一个docker文件。
2.创建Docker文件
我们必须在项目的根目录下创建一个docker文件。
FROM openjdk:8-jdk-alpine
FROM:我们正在从基础镜像openjdk构建我们的镜像,我们把OpenJDK作为一个父镜像,并在此基础上构建。
VOLUME:这是Spring Boot应用程序所需要的,因为Tomcat在内部试图在这个卷中创建一个工作文件夹。
ADD : 它将我们的jar添加到docker镜像中。
ENTRYPOINT:它指定了我们的应用程序运行的入口点。
3.构建Docker镜像
转到docker文件的位置,打开命令提示符,运行以下命令。
- 如果您使用的是maven
$ docker build -t tag-name/image-name .
- 如果您使用的是Gradle
$ docker build — build-arg JAR_FILE=build/libs/*.jar -t tag-name/image-name .
你可以通过使用以下命令检查现有的镜像。
docker image ls
注意:现在你可以把你的镜像推送到docker hub。这样别人就可以拉取你的镜像并运行docker镜像。我们可以使用同一个镜像创建多个容器。
4.运行Docker容器
为了运行我们的docker镜像,我们必须要做端口映射。这是因为我们的应用程序是在某种虚拟环境中运行的,所以我们必须做端口映射,从你的主机到docker-machine。使用下面的命令来做这个。
$ docker run -p 9090:8080 -t tag-name/image-name
如果你想停止我们的容器,使用下面的命令。
$ docker container stop container ID
要了解更多关于docker的信息,请浏览 开始使用docker
我希望你已经了解了如何使用Docker将Spring Boot应用程序容器化。谢谢你的阅读😊。
How To Dockerize your Spring Boot Application最初发表于Medium上的Javarevisited,在那里人们通过强调和回应这个故事来继续对话。