这里不再使用 端口映射的方式,因为不同主机上,Feign 根据 docker hostname访问会有问题.

把打包的好jar copy到docker镜像里

有几个服务,就复制几个dockerfile

Dockerfile

FROM registry.cn-hangzhou.aliyuncs.com/laizhenwei/jre:8u144

#
MAINTAINER zhenweilai <181282945@qq.com> COPY jar /usr/local RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo 'Asia/Shanghai' >/etc/timezone

开启两个eureka,互相注册

开启两个api服务,

开启两个app服务.

开启一个zuul路由服务

docker-compose

version: '2'
services:
eureka_master:
build: eurekaserver
network_mode: "host"
command: java -jar /usr/local/eurekaserver.jar --spring.profiles.active=test --eureka.instance.hostname=eureka1 --eureka.instance.other-hostname=eureka2 --server.port=8000 --eureka.instance.other-port=8001
volumes:
- /usr/local/microservice/log:/usr/local/microservice/log
restart: always eureka_backup:
build: eurekaserver
network_mode: "host"
command: java -jar /usr/local/eurekaserver.jar --spring.profiles.active=test --eureka.instance.hostname=eureka2 --eureka.instance.other-hostname=eureka1 --server.port=8001 --eureka.instance.other-port=8000
volumes:
- /usr/local/microservice/log:/usr/local/microservice/log
restart: always api_8070:
build: api
network_mode: "host"
command: java -jar /usr/local/api.jar --spring.profiles.active=test --server.port=8070
depends_on:
- eureka_master
- eureka_backup
volumes:
- /usr/local/microservice/log:/usr/local/microservice/log
restart: always api_8071:
build: api
network_mode: "host"
command: java -jar /usr/local/api.jar --spring.profiles.active=test --server.port=8071
depends_on:
- eureka_master
- eureka_backup
volumes:
- /usr/local/microservice/log:/usr/local/microservice/log
restart: always router:
build: router
network_mode: "host"
command: java -jar /usr/local/router.jar --spring.profiles.active=test --server.port=8088
depends_on:
- eureka_master
- eureka_backup
volumes:
- /usr/local/microservice/log:/usr/local/microservice/log
restart: always app_8060:
build: app
network_mode: "host"
command: java -jar /usr/local/app.jar --spring.profiles.active=test --server.port=8060
depends_on:
- eureka_master
- eureka_backup
volumes:
- /usr/local/microservice/log:/usr/local/microservice/log
restart: always app_8080:
build: app
network_mode: "host"
command: java -jar /usr/local/app.jar --spring.profiles.active=test --server.port=8080
depends_on:
- eureka_master
- eureka_backup
volumes:
- /usr/local/microservice/log:/usr/local/microservice/log
restart: always

应用application.yml,注册到两个eureka

eureka:
instance:
appname: app
instance-id: ${spring.cloud.client.ipAddress}:${server.port}
#续约更新时间间隔
lease-renewal-interval-in-seconds: 10
#续约到期时间
lease-expiration-duration-in-seconds: 30
client:
serviceUrl:
defaultZone: http://username:password@eureka1:8000/eureka/,http://username:password@eureka2:8001/eureka/

eureka application.yml

eureka:
instance:
hostname: localhost
other-port: 8001
other-hostname: backup
appname: eureka-server
instance-id: ${spring.cloud.client.ipAddress}:${server.port}
lease-expiration-duration-in-seconds: 5
server:
#5秒清理一次
eviction-interval-timer-in-ms: 5
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://username:password@${eureka.instance.other-hostname}:${eureka.instance.other-port}/eureka/

输入命令:docker-compose up --build -d

Step 1/4 : FROM registry.cn-hangzhou.aliyuncs.com/laizhenwei/jre:8u144
---> 1b97d252ae81
Step 2/4 : MAINTAINER zhenweilai <@qq.com>
---> Using cache
---> bf31044329be
Step 3/4 : COPY jar /usr/local
---> 7a1be0756dca
Removing intermediate container 5c45807bbc81
Step 4/4 : RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
---> Running in e8988ea8a1f8
---> ad26f883175e
Removing intermediate container e8988ea8a1f8
Successfully built ad26f883175e
Successfully tagged microservice_eureka_backup:latest
Building eureka_master
Step 1/4 : FROM registry.cn-hangzhou.aliyuncs.com/laizhenwei/jre:8u144
---> 1b97d252ae81
Step 2/4 : MAINTAINER zhenweilai <@qq.com>
---> Using cache
---> bf31044329be
Step 3/4 : COPY jar /usr/local
---> Using cache
---> 7a1be0756dca
Step 4/4 : RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
---> Using cache
---> ad26f883175e
Successfully built ad26f883175e
Successfully tagged microservice_eureka_master:latest
Building cloudinvoice_8080
Step 1/4 : FROM registry.cn-hangzhou.aliyuncs.com/laizhenwei/jre:8u144
---> 1b97d252ae81
Step 2/4 : MAINTAINER zhenweilai <@qq.com>
---> Using cache
---> bf31044329be
Step 3/4 : COPY jar /usr/local
---> Using cache
---> b9fe90218b85
Step 4/4 : RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
---> Using cache
---> 709a728e383a
Successfully built 709a728e383a
Successfully tagged microservice_cloudinvoice_8080:latest
Building cloudinvoice_8060
Step 1/4 : FROM registry.cn-hangzhou.aliyuncs.com/laizhenwei/jre:8u144
---> 1b97d252ae81
Step 2/4 : MAINTAINER zhenweilai <@qq.com>
---> Using cache
---> bf31044329be
Step 3/4 : COPY jar /usr/local
---> Using cache
---> b9fe90218b85
Step 4/4 : RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
---> Using cache
---> 709a728e383a
Successfully built 709a728e383a
Successfully tagged microservice_cloudinvoice_8060:latest
Building api_8070
Step 1/4 : FROM registry.cn-hangzhou.aliyuncs.com/laizhenwei/jre:8u144
---> 1b97d252ae81
Step 2/4 : MAINTAINER zhenweilai <@qq.com>
---> Using cache
---> bf31044329be
Step 3/4 : COPY jar /usr/local
---> Using cache
---> 5b85563136e5
Step 4/4 : RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
---> Using cache
---> 679564f7d414
Successfully built 679564f7d414
Successfully tagged microservice_api_8070:latest
Building api_8071
Step 1/4 : FROM registry.cn-hangzhou.aliyuncs.com/laizhenwei/jre:8u144
---> 1b97d252ae81
Step 2/4 : MAINTAINER zhenweilai <@qq.com>
---> Using cache
---> bf31044329be
Step 3/4 : COPY jar /usr/local
---> Using cache
---> 5b85563136e5
Step 4/4 : RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
---> Using cache
---> 679564f7d414
Successfully built 679564f7d414
Successfully tagged microservice_api_8071:latest
Building router
Step 1/4 : FROM registry.cn-hangzhou.aliyuncs.com/laizhenwei/jre:8u144
---> 1b97d252ae81
Step 2/4 : MAINTAINER zhenweilai <@qq.com>
---> Using cache
---> bf31044329be
Step 3/4 : COPY jar /usr/local
---> Using cache
---> c88e35c7fc38
Step 4/4 : RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
---> Using cache
---> 288ce24cfef0
Successfully built 288ce24cfef0
Successfully tagged microservice_router:latest
Recreating microservice_eureka_master_1 ...
Recreating microservice_eureka_backup_1 ...
Recreating microservice_eureka_master_1
Recreating microservice_eureka_backup_1 ... done
Recreating microservice_app_8060_1 ...
Recreating microservice_api_8070_1 ...
Recreating microservice_api_8070_1
Recreating microservice_router_1 ...
Recreating microservice_api_8071_1 ...
Recreating microservice_cloudinvoice_8060_1
Recreating microservice_api_8071_1
Recreating microservice_app_8080_1 ...
Recreating microservice_router_1
Recreating microservice_app_8080_1 ... done

docker-compose ps

              Name                            Command               State   Ports
---------------------------------------------------------------------------------
microservice_api_8070_1 java -jar /usr/local/api ... Up
microservice_api_8071_1 java -jar /usr/local/api ... Up
microservice_app_8060_1 java -jar /usr/local/app ... Up
microservice_app_8080_1 java -jar /usr/local/app... Up
microservice_eureka_backup_1 java -jar /usr/local/eurek ... Up
microservice_eureka_master_1 java -jar /usr/local/eurek ... Up
microservice_router_1 java -jar /usr/local/route ... Up

192.168.51.60:8000

docker-compose 完整打包发布, 多服务,多节点SPRING CLOUD ,EUREKA 集群的更多相关文章

  1. Spring Cloud微服务笔记(三)服务治理:Spring Cloud Eureka快速入门

    服务治理:Spring Cloud Eureka 一.服务治理 服务治理是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册与发现. 1.服务注册: 在服务治理框架中,通常会构 ...

  2. Docker Compose搭建Redis一主二从三哨兵高可用集群

    一.Docker Compose介绍 https://docs.docker.com/compose/ Docker官方的网站是这样介绍Docker Compose的: Compose是用于定义和运行 ...

  3. spring cloud深入学习(二)-----服务注册中心spring cloud eureka

    服务治理 主要用来实现各个微服务实例的自动化注册与发现,为啥需要这玩意呢?在一开始比如A系统调用B服务,可能通过手工维护B服务的实例,并且还得采用负载均衡等方式,这些全部都得需要手工维护,等后面系统越 ...

  4. 第三章 服务治理:Spring Cloud Eureka

    Spring Cloud Eureka是Spring Cloud Netflix 微服务套件中的一部分,它基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能.Spri ...

  5. 微服务架构之spring cloud eureka

    Spring Cloud Eureka是spring cloud的核心组件,负责服务治理功能,起到中心枢纽作用,其它组件都依赖eureka来获取服务,然后再根据项目需求实现自己的业务,eureka在整 ...

  6. 第三章 服务治理: Spring Cloud Eureka

    Spring Cloud Eureka是 Spring Cloud Netflix微服务套件中的一部分,它基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能 服务治理 ...

  7. 服务治理:Spring Cloud Eureka

    Spring Cloud Eureka主要负责完成微服务架构中服务治理功能. 服务治理是微服务架构中最为核心和基础模块,主要用来实现各个微服务实例的自动注册和发现. 服务注册 微服务实例启动后向注册中 ...

  8. 微服务架构集大成者—Spring Cloud (转载)

    软件是有生命的,你做出来的架构决定了这个软件它这一生是坎坷还是幸福. 本文不是讲解如何使用Spring Cloud的教程,而是探讨Spring Cloud是什么,以及它诞生的背景和意义. 1 背景 2 ...

  9. 主流微服务一站式解决方案Spring Cloud Alibaba入门看这篇就足够了

    学习路线 **本人博客网站 **IT小神 www.itxiaoshen.com 生态概述 架构演进 什么是微服务 https://martinfowler.com/microservices/ Mic ...

随机推荐

  1. weex 启动 android 模拟器(mac环境)

    一.android studio和android sdk下载 1.android studio下载并安装https://developer.android.com/studio/index.html ...

  2. iOS 组件化 —— 路由设计思路分析

    原文 前言 随着用户的需求越来越多,对App的用户体验也变的要求越来越高.为了更好的应对各种需求,开发人员从软件工程的角度,将App架构由原来简单的MVC变成MVVM,VIPER等复杂架构.更换适合业 ...

  3. shell第四篇(上)

    第四篇了解Shell 命令执行流程图 {网中人大哥推荐参考Learning the Bash Shell, 2nd Edition,第 178页:中文版229页} Shell 从标准输入或脚本中读取的 ...

  4. CSS<img>与<a href>字体同行显示方法与对齐

    1.一开始使用php的volist标签conding了这样一段代码: <volist name="result['list']" id="temp"> ...

  5. win10下端口被占用解决办法

    调试socket通信的时候,如果程序未正常结束,重新启动会报端口被占用的错误. 一 查找被占用的端口 解决办法如下:按win+R输入cmd打开控制台,输入 netstat -ano|findstr 8 ...

  6. 用swing做一个简单的正则验证工具

    直接上代码吧,因为我对swing也不熟悉,照着API一点点拼出来的. import java.awt.event.ActionEvent; import java.awt.event.ActionLi ...

  7. 安装puppeteer

    Puppeteer是一个node库,他提供了一组用来操纵Chrome的API,默认headless也就是无UI的chrome,也可以配置为有UI. 其实有点类似于PhantomJS,但Puppetee ...

  8. mkdir与mkdirs的区别

    mkdir与mkdirs的区别 项目中需要在代码中读取或创建文件保存路径,用到了mkdir,查看还有个mkdirs方法,这里记录一下两者的区别. 1.关于两者的说明如下: boolean mkdir( ...

  9. JFinal源码 分析之 Core包分析

    ActionHandler.java 这个类继承了上面 说的Handler类,首先我们 上 几个属性 ,下面几个 属性我们 需要 关心哪些东西 呢?首先 是ActionMapping和RenderMa ...

  10. php操作mongodb的常用函数

    连接mongodb: $mongoObj = new Mongo("127.0.0.1" , array( 'connect'=>true, 'persist'=>tr ...