单机利用 docker镜像部署 spring cloud 项目(学习)

首先 自己做一个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

未完待续。。。



原文地址:https://www.cnblogs.com/zhanglifeng/p/13322827.html