内容概要
本文将在Docker上构建Spring Boot 微服务应用程序-了解Docker容器对部署Spring Boot微服务的好处以及如何从简单的Spring Boot应用程序开始。
Docker当前是基于容器的部署中的热门话题,而Spring Boot在微服务开发中是相同的热度。 Spring Boot和Docker共同构成了开发基于微服务的应用程序的绝佳组合。在本文中,我将尝试用非常简单的词来解释
- 什么是Docker及其好处?
- 什么是Spring Boot以及如何创建简单的Spring Boot应用程序。
- 将Spring Boot应用程序托管在Docker容器中。
Docker容器
Docker容器是一种工具,可以非常轻松地使用容器部署和运行应用程序。容器允许开发人员创建具有所有依赖项的开发应用程序的多合一软件包。例如,Java应用程序需要Java库。没有docker的年代,当我们将应用部署到任何系统或VM上时,我们需要首先安装JDK。但是,有了docker,我们将所有依赖资源包及环境都打包到一个docker容器里面。
你有没有遇到这样的问题:在测试环境下运行好好的应用程序,挪到生产上就出问题?如果你遇到了,并且想解决这样的问题,那就用docker吧!docker容器是将运行环境一起打包,应用程序挪到哪里,运行环境都是一样的!
Spring Boot应用程序
Spring Boot是一个简化Web应用程序开发的框架。它具有许多预配置的模块,从而消除了手动添加依赖关系以使用Spring开发应用程序的问题。让我们看看如何在几分钟内创建一个Spring Boot Application。
打开Spring Starter以使用Spring Starter库创建Java Maven应用程序。
填写maven项目的的Group和Artifact,并在依赖项中添加“ Web”,并将其他所有内容保留为默认值,这将使用Java和Spring Boot创建一个Maven项目。这将生成一个ZIP,它将作为Maven项目导入到STS开发工具中。
您刚刚在工作区中创建了Spring Boot应用程序。现在,我们需要添加一个简单的RestController以便测试API。(随便写一个RestController测试,不一定按我的代码来)
运行应用程序并访问API的端点后,我们将在浏览器中看到输出“ Simple Spring Boot Application”。
我们已经在IDE的嵌入式服务器中成功创建并运行了该应用程序,现在我们将其部署在Docker容器中。为此,我们必须创建一个Dockerfile,其中将包含Docker要执行的步骤,以创建该应用程序的映像并从Docker运行该映像。
构建Docker容器
首先,我们需要maven将springboot应用打包,打包结果为:dockerdemo.jar
Docker使用户能够创建自己的Docker映像并将其部署在Docker中。要创建自己的Docker映像,我们必须创建自己的Dockerfile。基本上,Dockerfile是一个简单的文本文件,其中包含构建映像所需的所有指令。
这是我们的Dockerfile。在项目文件夹中创建一个简单文件,然后在该文件中添加以下步骤:
- FROM java:8表示这是一个Java应用程序,需要依赖JDK8环境的基础镜像
- EXPOSE 8080意味着我们想将8080暴露给外界以访问我们的应用程序。
- ADD/target/dockerdemo.jar dockerdemo.jar 表示添加本地包dockerdemo.jar到容器中,在容器里面也叫dockerdemo.jar
- ENTRYPOINT [“ java”,“-jar”,“ dockerdemo.jar”]将作为入口点运行命令,因为这是一个JAR,我们需要从Docker内部运行此JAR。
下面,我们使用docker build -f DockerFile -t dockedemo 构建镜像
构建镜像完成之后,使用下面的命令启动镜像,然后通过浏览器访问8000端口,成功:
docker run -p 8000:8000 dockerdemo
至此,我们的工作就完成了,以后重新构建就只需要执行docker build命令。运行就使用docker run命令就可以了。也许你会说:这也没有简单啊,是的构建容器的过程是比springboot打jar包麻烦的。但是DockerFile写好之后,你会一劳永逸!解决很多环境造成的麻烦!
写在最后
本号只做持续的知识输出,让知识产生价值、让程序员改变世界!