3.SpringCloud-Eureka-Docker

首先通过docker命令来手动部署,在本机进行测试,以便熟悉流程。
然后使用maven的docker插件进行配置,以便快速上线。
注:
1.maven插件对docker命令并没有完全支持,可以使用嵌入dockerfile的方式构建镜像。
2.仓库可以使用docker官方仓库或者自行搭建

1.创建Eureka-server集群

1.1 创建工程,并引入eureka-server,入口类

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>

</dependency>

1.2修改启动application加注解

@EnableEurekaServer

1.3配置文件

application.yml:

spring:

application:

name: eurekaserverdocker

application-eurekaService1.yml

spring:

profiles: eurekaService1

server:

port: 8888

eureka:

instance:

hostname: eurekaService1 # 指定该Eureka实例的主机名

prefer-ip-address: true

client:

serviceUrl: #多个地址使用 , 分隔。

defaultZone: http://eurekaService2:8887/eureka/,http://eurekaService3:8886/eureka/

application-eurekaService2.yml

spring:

profiles: eurekaService2

server:

port: 8887

eureka:

instance:

hostname: eurekaService2 # 指定该Eureka实例的主机名

prefer-ip-address: true

client:

serviceUrl: #多个地址使用 , 分隔。

defaultZone: http://eurekaService1:8888/eureka/,http://eurekaService3:8886/eureka/

application-eurekaService3.yml

spring:

profiles: eurekaService3

server:

port: 8886

eureka:

instance:

hostname: eurekaService3 # 指定该Eureka实例的主机名

prefer-ip-address: true

client:

serviceUrl: #多个地址使用 , 分隔。

defaultZone: http://eurekaService1:8888/eureka/,http://eurekaService2:8887/eureka/

2.使用docker手动部署(后续会加入使用Maven插件方式部署)

2.1 创建文件夹,加入工程的jar包,以及Dockerfile:

FROM openjdk:8u131-jdk-alpine

MAINTAINER gaojingyuan

#将指定的jar文件复制到容器中

COPY eurekaserverdocker-0.0.1-SNAPSHOT.jar /usr/local/

#执行jar文件

ENTRYPOINT ["java" ,"-jar","/usr/local/eurekaserverdocker-0.0.1-SNAPSHOT.jar"]

注:这里也可以配置为centos,通过配置安装java

FROM centos

MAINTAINER gaojingyuan

#安装应用执行的环境java

RUN yum -y install java

#将指定的jar文件复制到容器中

COPY eurekaserverdocker-0.0.1-SNAPSHOT.jar /usr/local/

#执行jar文件

ENTRYPOINT ["java" ,"-jar","/usr/local/eurekaserverdocker-0.0.1-SNAPSHOT.jar"]

但是通过对比可以看出占用空间相差较多

REPOSITORY TAG IMAGE ID CREATED SIZE

gaojingyuan/eurekacluster latest b126393b43e1 10 seconds ago 146MB

gaojingyuan/eurekaserver latest 30d0a7cc0d47 2 weeks ago 483MB

2.2 构建image

docker build -t gaojingyuan/eurekacluster .

2.3 定义 docker-compose.yml

version: "3"

services:

eurekaService1: # 默认情况下,其他服务可以使用服务名称连接到该服务。因此,对于peer2的节点,它需要连接http://peer1:8761/eureka/,因此需要配置该服务的名称是peer1。

image: gaojingyuan/eurekacluster

networks:

- eureka-net

ports:

- "8888:8888"

environment:

- spring.profiles.active=eurekaService1

eurekaService2:

image: gaojingyuan/eurekacluster

networks:

- eureka-net

ports:

- "8887:8887"

environment:

- spring.profiles.active=eurekaService2

eurekaService3:

image: gaojingyuan/eurekacluster

networks:

- eureka-net

ports:

- "8886:8886"

environment:

- spring.profiles.active=eurekaService3

networks:

eureka-net:

driver: overlay

2.4初始化蜂群并启动服务

docker swarm init

docker stack deploy -c docker-compose.yml eurekacluster

浏览器查看http://localhost:8888/ http://localhost:8887/ http://localhost:8886/

可以看到配置成功


2.5 查看及删除服务

docker service ls
docker stack rm eurekacluster
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,890评论 18 139
  • jHipster - 微服务搭建 CC_简书[https://www.jianshu.com/u/be0d56c4...
    quanjj阅读 829评论 0 2
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,947评论 6 342
  • 昨天喝的晕乎乎的,第二天醒来已经是早上7点钟了,躺在床上拿上手机,开始写游记,到8点半的时候,队长说让我们赶快起床...
    甘紫腾阅读 1,101评论 0 0
  • 无条件的爱与我的连接是如此地开放和清晰,在任何时刻,任何事情里我都能感受到、看到、听到和了解这个真相。这个真相带给...
    茗一笑阅读 162评论 0 0