打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
基于Spring Boot和Spring Cloud实现微服务架构学习(六)

应用Docker部署

下面就介绍如何将之前的Spring Boot项目部署在Docker上,首先,在应用根目录下建立 Dockerfile 文件,以使用 Maven 构建为例,选用 maven:3.3.3 官方镜像,官方维护的 Maven 镜像依赖于 Java 镜像构建,所以我们不需要使用 Java 镜像,具体内容如下:

FROM maven:3.3.3ADD pom.xml /tmp/build/RUN cd /tmp/build && mvn -q dependency:resolveADD src /tmp/build/src        #构建应用RUN cd /tmp/build && mvn -q -DskipTests=true package         #拷贝编译结果到指定目录        && mv target/*.jar /app.jar         #清理编译痕迹        && cd / && rm -rf /tmp/buildVOLUME /tmpEXPOSE 8080ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

  • 因为 Spring Boot 框架打包的应用是一个包含依赖的 jar 文件,内嵌了 Tomcat 和 Jetty 支持,所以我们只需要使用包含 Java 的 Maven 镜像即可,不需要 Tomcat 镜像。
  • 为了减少镜像大小,在执行 Maven 构建之后,清理了构建痕迹。
  • 在 Dockerfile 文件的最后,使用 ENTRYPOINT 指令执行启动 Java 应用的操作。

构建 Docker 镜像:

docker build -t docker-demo-spring-boot .   //注意后面的 . 表示当前路径下

从镜像启动容器:

docker run -d -p 8080:8080 docker-demo-spring-boot

完成部署:

URL访问,可通过docker ip查看应用的虚拟地址。

Docker Compose编排

Docker Compose是用于定义和组装运行多容器分布式应用的工具,它提供一个简单的基于YAML语言的docker-compose.yml配置文件。 通常,我们使用docker定义和运行复杂的应用,使用docker compose,在一个文件里定义多容器应用的启动顺序,起到服务编排的作用。

编写 docker-compose.yaml 文件

web:  build: .  ports:    - "8080:8080"  links:    - mongodb:mongodbmongodb:  image: daocloud.io/library/mongo:latest  ports:    - "27017:27017"
这里以MongoDB数据库提供服务的demo,在该文件中,我们定于了两个服务:

  • 基于我们应用构建的 docker-demo-java-mongo 镜像,用来提供 Web 服务
  • 基于 DaoCloud 提供的 MongoDB 镜像,提供存储服务
  • 通过 links 为 web 关联 mongo 服务

启动 Docker Compose

docker-compose up

浏览器访问

以web应用为访问路径,数据将关联存储到MongoDB上。



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
还在使用第三方Docker插件?SpringBoot官方插件真香!
史上最简单的SpringCloud教程 | 第十一篇: docker部署spring cloud项目
Docker Jenkins Nginx Spring Boot 自动化部署项目
SpringCloud+Docker+Jenkins+GitLab+Maven实现自动化构建与部署实战
不搞虚的!快速把你拉入Docker 的门里 | 原力计划
真香,GitLab 和 Docker自动化部署SpringBoot应用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服