内容简介:对于本教程,您将拥有一个Docker化Spring-Boot实例程序,该应用程序与MongDB通信以获取GET/POST api请求,并部署在Kubernates集群中。
发现一种集中的方法 来监控你的虚拟基础设施、内部IT设施和云基础设施-所有这些都统一在这个 统一平台 中
对于本教程,您将拥有一个 Docker 化Spring-Boot实例程序,该应用程序与MongDB通信以获取GET/POST api请求,并部署在Kubernates集群中。
前提条件
Docker 是一个具有"社交"方面的 Linux 容器管理 工具 包,它允许用户发布容器镜像并且可以使用其他人发布的镜像。运行一个容器化进程的秘诀就是通过Docker 镜像,在本篇文章中,我们将会构建一个简单的Spring Boot应用。
您可以在 GitHub 仓库中找到该应用
Docke File文件
FROM openjdk:8-jdk-alpine ADD target/spring-boot-mongo-docker-1.0.0.jar app.jar ENV JAVA_OPTS=”” ENTRYPOINT exec java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar
Docker Compose 文件
version: “2.1” services: mongo: image: mongo:3.2.4 ports: – 27017:27017 command: –smallfiles mongo-init: build: ./mongo-init links: – mongo mongo-client: image: mongoclient/mongoclient ports: – 3030:3000 environment: – MONGOCLIENT_DEFAULT_CONNECTION_URL=mongodb://mongo:27017 links: – mongo
APP ***************************************************************************************
spring-boot-mongo-docker:
image: aritranag20/spring-boot-mongo-docker
ports:
– 8080:8080
links:
– mongo
entrypoint: “java -Djava.security.egd=file:/dev/./urandom -jar /app.jar”
构建Spring Boot App
如果您想使用Maven来进行,请执行以下命令
./mvn package && java -jar target/spring-boot-mongo-docker-1.0.0.jar
现在可以到 http://localhost:8080/customer/ 来看到你存储的用户信息。
Docker化
我们需要一个JDK环境的容器来运行我们的Spring Boot应用。现在有许许多多的自带JDK 8的公共可用镜像,但是为了获取端到端的体验,我们自己来构建一个基于JDK 8 Alpha Linux来构建最小的容器。
docker build -t aritranag20/spring-boot-mongo-docker .
然后使用你在docker.io 注册的用户名进行登录
docker login
执行如下命令去发布你的镜像到Docker镜像中心
docker push aritranag20/spring-boot-mongo-docker
容器化
如果您想用Docker来运行,执行以下命令
./docker-compose up
部署到Kubernates集群
现在我们Docker仓库中已经有一个可用的容器应用,我们可以将它部署到Kubernates 急群中。并且我们也会部署一个MongoDB节点来作为我们后端的数据支撑。
使用如下命令来启动本地Kubernates集群:
minikube start
你也可以启动集群的DashBoard(可视化界面)
minikube dashborad
接下来,为我们的应用在集群中创建一个部署
kubectl create -f deployment.yml
我们可以用如下命名查看服务的描述
kubectl describe service spring-boot-mongo-docker
现在可以启动并获取服务的地址
minikube service spring-boot-mongo-docker
它将启动浏览器并指向端点。例如,在我的例子中:
curl http://192.168.99.101:30864/user => [{"id":"58bcd7ad5908010005cce257","firstName":"Arun","lastName":null,"email":null,"address":{"street1":null,"street2":null,"town":null,"postcode":null,"state":null}}]
总结
恭喜!你已经成功创建一个Spring-Boot-MongDB的Docker容器化应用,并在Kubernates中托管了该应用程序。Spring Boot应用集群在容器内部默认使用端口8080运行,我们也在pods中使用同样的端口,并启动多个实例来对服务进行负载均衡,可用使用 docker describe service spring-boot-mongo-docker 命令来获取NodePort信息
可选
最后停止你本地的Kubernates集群
minikube stop
原文链接: 使用Kubernates和Docker将Spring Boot与MongoDB作为容器部署 (翻译:刘明)
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 如何使用 Docker 部署容器
- 如何快速部署容器化应用
- 使用Docker容器化部署实践之Django应用部署(一)
- CoreOS 基于容器部署虚拟机
- CoreOS 基于容器部署虚拟机
- Docker 容器化多应用部署
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Spring in Action
Craig Walls / Manning Publications / 2011-6-29 / USD 49.99
Spring in Action, Third Edition has been completely revised to reflect the latest features, tools, practices Spring offers to java developers. It begins by introducing the core concepts of Spring and......一起来看看 《Spring in Action》 这本书的介绍吧!