使用Kubernetes和Docker将Spring Boot与MongoDB作为容器部署
2019-01-11 07:47
1061 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/M2l0ZgSsVc7r69eFdTj/article/details/86285196
对于本教程,您将拥有一个Docker化Spring-Boot实例程序,该应用程序与MongoDB通信以获取GET/POST API请求,并部署在Kubernetes集群中。
前提条件
Docker是一个具有"社交"方面的Linux容器管理工具包,它允许用户发布容器镜像并且可以使用其他人发布的镜像。运行一个容器化进程的秘诀就是通过Docker镜像,在本篇文章中,我们将会构建一个简单的Spring Boot应用。
您可以在https://github.com/aritnag/spring-boot-mongo-kubernetes-docker中找到该应用。
Docke File文件
Docker Compose 文件
构建Spring Boot App
现在可以到http://localhost:8080/customer/ 来看到你存储的用户信息。
Docker化
我们需要一个JDK环境的容器来运行我们的Spring Boot应用。现在有许许多多的自带JDK 8的公共可用镜像,但是为了获取端到端的体验,我们自己来构建一个基于JDK 8 Alpha Linux的最小容器:
然后使用你在docker.io注册的用户名进行登录:
执行如下命令去发布你的镜像到Docker镜像中心:
容器化
如果您想用Docker来运行,执行以下命令:
部署到Kubernetes集群
现在我们Docker仓库中已经有一个可用的容器应用,我们可以将它部署到Kubernetes集群中。并且我们也会部署一个MongoDB节点来作为我们后端的数据支撑。
使用如下命令来启动本地Kubernetes集群:
你也可以启动集群的DashBoard(可视化界面):
接下来,为我们的应用在集群中创建一个部署:
我们可以用如下命令查看服务的描述:
现在可以启动并获取服务的地址:
它将启动浏览器并指向端点。例如,在我的例子中:
总结
可选
最后停止你本地的Kubernetes集群:
原文链接:https://dzone.com/articles/deploying-spring-boot-and-mongodb-as-containers-us-1
对于本教程,您将拥有一个Docker化Spring-Boot实例程序,该应用程序与MongoDB通信以获取GET/POST API请求,并部署在Kubernetes集群中。
前提条件
Minikube
Kubectl
Docker
Maven
Docker是一个具有"社交"方面的Linux容器管理工具包,它允许用户发布容器镜像并且可以使用其他人发布的镜像。运行一个容器化进程的秘诀就是通过Docker镜像,在本篇文章中,我们将会构建一个简单的Spring Boot应用。
您可以在https://github.com/aritnag/spring-boot-mongo-kubernetes-docker中找到该应用。
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
./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
部署到Kubernetes集群
现在我们Docker仓库中已经有一个可用的容器应用,我们可以将它部署到Kubernetes集群中。并且我们也会部署一个MongoDB节点来作为我们后端的数据支撑。
使用如下命令来启动本地Kubernetes集群:
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}}]
总结
可选
最后停止你本地的Kubernetes集群:
minikube stop
原文链接:https://dzone.com/articles/deploying-spring-boot-and-mongodb-as-containers-us-1
相关文章推荐
- spring boot 使用docker在阿里云容器服务部署
- 理解docker部署springboot-容器网络使用(三)
- 第一个SpringBoot web 应用使用maven构建Docker镜像并容器化运行
- Spring Boot 2.0(四):使用 Docker 部署 Spring Boot
- 使用 Docker 部署 Springboot 应用
- Spring Boot 2.0(六):使用 Docker 部署 Spring Boot 开源软件云收藏
- 理解docker部署springboot-容器日志处理(四)
- mac和linux下使用Docker,部署SpringBoot项目到docker
- 二. Spring Boot使用DockerFile maven插件自动化部署之容器通信
- 理解docker部署springboot-容器内存优化的反思(五)
- 使用SpringBoot搭建小型项目,集成mybatis,redis,swagger2,并部署在外部容器中。
- 使用maven集成docker构建和部署Spring Boot 应用
- 【SFA官方翻译】使用 Kubernetes、Spring Boot 2.0 和 Docker 的微服务快速指南
- 二. Spring Boot使用DockerFile maven插件自动化部署
- 从零开始通过idea插件将一个spring boot项目部署到docker容器里运行
- 使用Docker部署Spring Boot 应用 Dockerfile方式
- 将Spring-boot应用部署到Docker容器
- spring-boot dubbo项目使用docker方式部署
- 使用 Docker 和 Kubernetes 将 MongoDB 作为微服务运行
- 使用 Docker 和 Kubernetes 将 MongoDB 作为微服务运行