首先 自己做一个jdk镜像,也可以直接拉取我的镜像,600M左右:
sudo docker pull registry.cn-beijing.aliyuncs.com/zhanglf/jdk1.8-centos7:1.0
搭建EurekaServer项目
1、新建DockerFile文件
FROM registry.cn-beijing.aliyuncs.com/zhanglf/jdk1.8-centos7:1.0 COPY eureka-server.jar /data/web/ WORKDIR /data/web CMD java -jar /data/web/eureka-server.jar
2、新建Spring Eureka项目,打成jar包(eureka-server.jar),然后执行 docker build 命令
docker build -t eurekaserver .
3、提前修改挂载的配置文件,~/config/eureka1/application.yml 。修改这个文件,下面创建好容器以后,内部配置文件会直接使用此文件,也可以稍后修改,重启容器生效
# 服务注册中心 server: port: 8001 spring: application: name: eureka-server eureka: instance: hostname: eureka1 client: fetch-registry: true # 表示是否从Eureka Server获取注册信息,默认为true.因为这是一个单点的Eureka Server,不需要同步其他的Eureka Server节点的数据,这里设置为false register-with-eureka: true # 表示是否将自己注册到Eureka Server,默认为true.由于当前应用就是Eureka Server,故而设置为false. service-url: # 设置与Eureka Server的地址,查询服务和注册服务都需要依赖这个地址.默认是http://localhost:8761/eureka/;多个地址可使用','风格. defaultZone: http://eureka2:8002/eureka/,http://eureka3:8003/eureka/
4、然后再执行下面docker 命令创建实例
docker run -itd -p 8001:8001 -v /home/config/eureka1/application.yml:/data/web/config/application.yml --name='eureka1' --add-host eureka1:10.255.20.39 --add-host eureka2:10.255.20.39 --add-host eureka3:10.255.20.39 eurekaserver
docker run -itd -p 8002:8002 -v /home/config/eureka2/application.yml:/data/web/config/application.yml --name='eureka2' --add-host eureka1:10.255.20.39 --add-host eureka2:10.255.20.39 --add-host eureka3:10.255.20.39 eurekaserver
docker run -itd -p 8003:8003 -v /home/config/eureka3/application.yml:/data/web/config/application.yml --name='eureka3' --add-host eureka1:10.255.20.39 --add-host eureka2:10.255.20.39 --add-host eureka3:10.255.20.39 eurekaserver
注意:配置文件应该放到执行 java -jar 命令的目录同级或者 /config 下面。
比如你在 /data/web 目录执行java -jar , 则配置文件应该放在 /data/web下面 或者 /data/web/config 下面。 如果使用DockerFile 执行java 命令,则可以使用
WORKDIR /data/web 命令切换执行目录
5、通过docker ps 命令查看容器是否正常, 如果正常的话,就可以使用 ip+端口 访问eureka服务的控制台了 ,例如我的: http://117.***.***.243:8001/ ,我起了3个实例互相注册,
下面是8001实例Eureka1的 控制台页面,其他两个类似
EurekaServer 集群搭建完成。
搭建Eureka服务提供者
主要步骤跟上面类似,首先写新建 spring cloud 项目, Spring Initializr ,Spring cloud Discovery,选择Eureka Discovery Client 。
新建controller写api,然后打包上传服务器。 利用docker file 生成镜像,然年 docker run
docker run -itd -p 8005:8005 -v /home/config/producer1/application.yml:/data/web/config/application.yml -v /home/logs/producer1/:/data/log/ --name='producer1' eurekaproducer
未完待续。。。