网站做专题主题该怎么选,jsp网站空间,做网络推广要做网站吗,益阳哪里做网站容器化spring boot应用程序有多种方式#xff0c;如基于简单的Dockerfile#xff0c;多阶段Dockerfile以及基于Docker Compose等#xff0c;我们将逐步给大家介绍#xff0c;本节主要介绍基于简单的Dockerfile进行容器化spring boot的应用程序。
创建Spring boot应用程序 …容器化spring boot应用程序有多种方式如基于简单的Dockerfile多阶段Dockerfile以及基于Docker Compose等我们将逐步给大家介绍本节主要介绍基于简单的Dockerfile进行容器化spring boot的应用程序。
创建Spring boot应用程序
创建一个简单的spring boot应用程序有多种方式如基于Spring Initializr、基于Maven或者Gradle等多种方式大家可以根据自己的偏好进行创建我们以Maven为例需要添加以下依赖项
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId
/dependencybuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins
/build其中插件spring-boot-maven-plugin用于打包spring boot的jar包必须要添加该插件否则会导致最终的jar包不能执行。
添加端点
添加一个测试端点用于部署后的测试如下所示
RestController
RequestMapping(value test)
public class TestController {GetMapping(value test)public String test() {return test;}
}添加Dockerfile文件
Dockerfile需要添加到项目的根目录下且名字必须是Dockerfile注意没有后缀名。Dockerfile的内容如下所示
FROM openjdk:17-jdk-alpine
MAINTAINER author
RUN mkdir service
WORKDIR service
COPY JwtDemo-1.0-SNAPSHOT.jar application.jar
ENTRYPOINT [java,-jar,application.jar]如上代码所示
第一行使用的是jdk 17的镜像
第二行是一个维护者的信息不建议太多
第三行run 主要是在容器内创建文件夹service
第四行workdir 用于将工作目录设置为上一步创建的service文件夹
第五行copy 用于将程序的jar包拷贝到容器内部基于第四行复制到了容器内部的service文件夹中
第六行是启动jar包的命令用于容器启动后运行应用程序
构建镜像
我是基于linux的centos系统进行镜像的构造和容器的运行的因此需要将打包后的jar包即JwtDemo-*.jar上传到linux系统中同时也需要将Dockerfile同样复制到linux上与jar包在一个目录下如下图所示 构建镜像的命令如下
docker build -t jwt:v1 .
以上命令用于构建镜像jwt其中v1是新镜像的版本号如果没有v1则默认为latest此外需要注意的是在这个命令行的末尾有一个点用于加载当前目录的Dockerfile文件这也是为什么创建Dockerfile时使用该名称的原因当然也可以使用其他文件名但需要使用其他参数进行指定。
创建后的镜像如下 启动容器
运行如下命令启动该容器
docker container run -d -p 3000:8080 --name jwt jwt:v1
如上图通过docker container run命令启动另一个容器名称为jwt并将容器内部应用程序的端口8080映射到了宿主机的3000的端口上执行以上命令之后可以执行如下命令调用test的端点 如上所示通过调用宿主机的3000端口可以发现能够正常使用
至此我们完成了spring boot应用程序的容器化工作如果后续我们的程序发生了变化则可以通过上述的步骤重新构建镜像删除已有的容器并创建新的容器便可以了。
希望以上文章对您有所帮助后续将给大家介绍如何通过idea直接连接到远程的docker上以及如何基于Docker Compose进行应用的容器化。