SpringCloud@Docker系列: 运行Eureka Server集群

本文介绍将Eureka集群运行在Docker容器内。

一、构建Eureka jar包
构建过程就不写了,通过spring boot向导创建,加入eureka-server即可,
在Application类上加上@EnableEurekaServer,
application.properties的设置如下:
spring.application.name=eureka-server
server.port=2000
其它参数可以不用指定,我们会在启动eureka容器时进行指定。
请确认本地可以运行起来,然后打jar包(eureka-server.jar),后面构建镜像时用。


二、构建java基础镜像
运行java程序的基础镜像,直接上Dockerfile,请自行构建,

FROM centos # 基于centos
MAINTAINER Billy Zhang “service@mobaas.com”
WORKDIR /root/

# JDK8包,下载后放在构建目录,名称对应作修改
COPY jdk-8u151-linux-x64.rpm /root/
RUN rpm -Uvh jdk-8u151-linux-x64.rpm
RUN rm -f jdk*.rpm

运行 docker build -t java8 . 构建镜像


三、构建Eureka Server镜像
Dockerfile内容如下:
FROM java8 # 基于上面构建的java镜像
WORKDIR /root/
COPY eureka-server.jar /root/
COPY entrypoint.sh /root/
RUN chmod 0755  /root/entrypoint.sh

EXPOSE 2000
ENTRYPOINT [ “/root/entrypoint.sh” ]

entrypoint.sh是容器内的启动脚本,用于读取参数并启动eureka-server
内容如下:
#!/bin/bash
java $EUREKA_OPTS $JAVA_OPTS -jar /root/eureka-server.jar

把Dockerfile, entrypoiint.sh, eureka-server.jar放到一个目录,
运行 docker build -t registry_ip:port/eureka-server . 构建镜像
运行 docker push registry_ip:port/eureka-server 推送到registry


四、启动Eureka Server集群
集群可以运行在一个Docker服务器内,也可以在多个Docker服务器内,只要服务器IP可以连接,
这里假定运行在两个Docker服务器内,IP规划如下:
server1:  192.168.0.11:2000
server2: 192.168.0.12:2000

相应的容器启动命令如下:
server1:
docker run -d -p 2000:2000 -e EUREKA_OPTS=”\
-Deureka.client.register-with-eureka=true \
-Deureka.client.fetch-registry=true \
-Deureka.instance.hostname=192.168.0.11 \
-Deureka.client.serviceUrl.defaultZone=http://192.168.0.12:2000/eureka” \
-e JAVA_OPTS=”-Xmx1024m”  registry_ip:port/eureka-server

server2:
docker run -d -p 2000:2000 -e EUREKA_OPTS=”\
-Deureka.client.register-with-eureka=true \
-Deureka.client.fetch-registry=true \
-Deureka.instance.hostname=192.168.0.12 \
-Deureka.client.serviceUrl.defaultZone=http://192.168.0.11:2000/eureka” \
-e JAVA_OPTS=”-Xmx1024m”  registry_ip:port/eureka-server

都启动后,访问任一server节点,可看到注册的eureka-server

文章出处:JPCode.net 精品代码网
链接:http://www.jpcode.net/article/10025

标签: SpringCloud Docker Eureka


相关资源
评论: