3.SpringCloud-Eureka-Docker

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

1.创建Eureka-server集群

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



org.springframework.cloud

spring-cloud-starter-netflix-eureka-server


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/

可以看到配置成功


3.SpringCloud-Eureka-Docker_第1张图片

2.5 查看及删除服务

docker service ls
docker stack rm eurekacluster

你可能感兴趣的:(3.SpringCloud-Eureka-Docker)