博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java版spring cloud+spring boot+redis多租户社交电子商务平台 (十一)docker部署spring cloud项目...
阅读量:6606 次
发布时间:2019-06-24

本文共 3219 字,大约阅读时间需要 10 分钟。

一、docker简介

电子商务社交平台源码请加企鹅求求:三五三六二四七二五九。Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。
Docker通常用于如下场景:
java springcloud版b2b2c社交电商spring cloud分布式微服务
web应用的自动化打包和发布;
自动化测试和持续集成、发布;
在服务型环境中部署和调整数据库或其他的后台应用;
从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
Docker 的优点

1、简化程序:

Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。

2、避免选择恐惧症:

如果你有选择恐惧症,还是资深患者。Docker 帮你 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。

3、节省开支:

一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。

上面文字参考了相关文章;另,关于docker 的安装和基本的使用见相关教程。

二、准备工作

环境条件:

linux系统,不建议windows

docker最新版本
jdk 1.8
maven3.0
本文采用的工程来自第一篇文章的工程,采用maven的方式去构建项目,并采用docker-maven-plugin去构建docker镜像。

三、改造工程、构建镜像

改造eureka-server工程

在pom文件加上插件:

org.springframework.boot
spring-boot-maven-plugin
com.spotify
docker-maven-plugin
0.4.3
${docker.image.prefix}/${project.artifactId}
src/main/docker
/
${project.build.directory}
${project.build.finalName}.jar
复制代码

Spotify 的 docker-maven-plugin 插件是用maven插件方式构建docker镜像的。

imageName指定了镜像的名字,本例为 forep/eureka-server

dockerDirectory指定 Dockerfile 的位置
resources是指那些需要和 Dockerfile 放在一起,在构建镜像时使用的文件,一般应用 jar 包需要纳入。
修改下配置文件:

server:  port: 8761eureka:  instance:    prefer-ip-address: true  client:    registerWithEureka: false    fetchRegistry: false
复制代码

编写dockerfile文件:

FROM frolvlad/alpine-oraclejdk8:slimVOLUME /tmpADD eureka-server-0.0.1-SNAPSHOT.jar app.jar#RUN bash -c 'touch /app.jar'ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]EXPOSE 8761复制代码

docker file编写指令:

FROM

docker file编写指令: FROM复制代码

FROM指令必须指定且需要在Dockerfile其他指令的前面,指定的基础image可以是官方远程仓库中的,也可以位于本地仓库。后续的指令都依赖于该指令指定的image。当在同一个Dockerfile中建立多个镜像时,可以使用多个FROM指令。

VOLUME

格式为:

VOLUME ["/data"]复制代码

使容器中的一个目录具有持久化存储数据的功能,该目录可以被容器本身使用,也可以共享给其他容器。当容器中的应用有持久化数据的需求时可以在Dockerfile中使用该指令。

ADD

从src目录复制文件到容器的dest。其中src可以是Dockerfile所在目录的相对路径,也可以是一个URL,还可以是一个压缩包

ENTRYPOINT

指定Docker容器启动时执行的命令,可以多次设置,但是只有最后一个有效。

EXPOSE

为Docker容器设置对外的端口号。在启动时,可以使用-p选项或者-P选项。

构建镜像

执行构建docker镜像maven命令:

mvn cleanmvn package docker:build复制代码

构建eureka-server镜像成功。

同理构建service-hi镜像

pom文件导入同eurek-server
修改下配置文件:

eureka:  client:    serviceUrl:      defaultZone: http://eureka-server:8761/eureka/ # 这个需要改为eureka-serverserver:  port: 8763spring:  application:    name: service-hi复制代码

电子商务社交平台源码请加企鹅求求:三五三六二四七二五九

转载于:https://juejin.im/post/5cfe23e2f265da1bc5525865

你可能感兴趣的文章
Windows Mobile下访问Sqlite的Native C++封装
查看>>
一个优秀的Unity3d开发者必备的几种设计模式
查看>>
深度学习笔记之CNN(卷积神经网络)基础
查看>>
表单提交的3种方式,http post的contentType
查看>>
在VirtualBox里复制VDI文件[转]
查看>>
JAVA设计模式之【原型模式】
查看>>
Hadoop 添加删除数据节点(datanode)
查看>>
33.8. slb configuration
查看>>
c++11新特性(4) lambda捕捉块
查看>>
【译】用Fragment解决屏幕旋转(状态发生变化)状态不能保持的问题
查看>>
44.4. HTML 5
查看>>
ext的window如何隐藏水平滚动条
查看>>
[编译] 1、第一个makefile简单例子
查看>>
71.8. Run level shell script to start Oracle 10g services on RedHat Enterprise Linux (RHAS 4)
查看>>
[LintCode] Maximum Depth of Binary Tree 二叉树的最大深度
查看>>
SAP QM Transfer of Inspection Stock
查看>>
全新视觉| 数治省市:SAP大数据构想一切可能
查看>>
ORACLE expdp备份与ORA-31693、ORA-02354、ORA-02149
查看>>
SAP S/4 HANA新变化-信用管理
查看>>
清华梦的粉碎读后感--论理想主义者王垠
查看>>