Spring Boot和Spring Cloud微服务架构学习(六)-Docker应用
来源:互联网 发布:公租房信息管理 源码 编辑:程序博客网 时间:2024/05/20 23:57
应用Docker部署
下面就介绍如何将之前的Spring Boot项目部署在Docker上,首先,在应用根目录下建立 Dockerfile 文件,以使用 Maven 构建为例,选用 maven:3.3.3 官方镜像,官方维护的 Maven 镜像依赖于 Java 镜像构建,所以我们不需要使用 Java 镜像,具体内容如下:
- FROM maven:3.3.3
- ADD pom.xml /tmp/build/
- RUN cd /tmp/build && mvn -q dependency:resolve
- ADD src /tmp/build/src
- #构建应用
- RUN cd /tmp/build && mvn -q -DskipTests=true package \
- #拷贝编译结果到指定目录
- && mv target/*.jar /app.jar \
- #清理编译痕迹
- && cd / && rm -rf /tmp/build
- VOLUME /tmp
- EXPOSE 8080
- ENTRYPOINT ["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:mongodb
- mongodb:
- image: daocloud.io/library/mongo:latest
- ports:
- - "27017:27017"
- 基于我们应用构建的 docker-demo-java-mongo 镜像,用来提供 Web 服务
- 基于 DaoCloud 提供的 MongoDB 镜像,提供存储服务
- 通过 links 为 web 关联 mongo 服务
启动 Docker Compose
- docker-compose up
浏览器访问
以web应用为访问路径,数据将关联存储到MongoDB上。
阅读全文
0 0
- 基于Spring Boot和Spring Cloud实现微服务架构学习(六)-Docker应用
- 基于Spring Boot和Spring Cloud实现微服务架构学习(六)-Docker应用
- 基于Spring Boot和Spring Cloud实现微服务架构学习(六)-Docker应用
- 基于Spring Boot和Spring Cloud实现微服务架构学习(六)-Docker应用
- 基于Spring Boot和Spring Cloud实现微服务架构学习(六)-Docker应用
- Spring Boot和Spring Cloud微服务架构学习(六)-Docker应用
- 基于Spring Boot和Spring Cloud实现微服务架构学习(三)-Spring Boot应用
- 基于Spring Boot和Spring Cloud实现微服务架构学习(三)-Spring Boot应用
- 基于Spring Boot和Spring Cloud实现微服务架构学习(三)-Spring Boot应用
- 基于Spring Boot和Spring Cloud实现微服务架构学习(三)-Spring Boot应用
- Spring Boot和Spring Cloud微服务架构学习(三)-Spring Boot应用
- 基于Spring Boot和Spring Cloud实现微服务架构学习(五)-Docker总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(五)-Docker总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(五)-Docker总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(五)-Docker总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(五)-Docker总结
- Spring Boot和Spring Cloud微服务架构学习(五)-Docker总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(四)-Spring Cloud总结
- Android 官方推荐 : DialogFragment 创建对话框
- APK META-INF/LICENSE,文件重复问题
- org.springframework.core.convert.ConversionFailedException
- Anaconda和tensorflow离线安装
- GitHub20个Python机器学习项目
- Spring Boot和Spring Cloud微服务架构学习(六)-Docker应用
- Codeforces Round #452 (Div. 2) C
- 不用hashmap二用sparseArray ArrayMap 以及ConcurentHashmAP
- 9.10 ————画类图
- idea快捷键
- bat批处理的注释语句
- Win10+Anaconda2+vs2015+cuDnn+CUDA8.0安装caffe时需要注意的问题
- Bit存储状态型数据
- canvas转base64/jpeg时,透明区域变成黑色背景的解决方案