docker 、docker-compose环境部署eureka集群

docker 、docker-compose环境部署eureka集群

1.关于eureka的搭建,详细参考《spring cloud Greenwich.SR1 服务注册与发现–eureka搭建以及集群搭建》

这次构建的springboot配置文件如下

server:
  port: 8761
spring:
  application:
    name: badger-spring-cloud-eureka
eureka:
  server:
    enable-self-preservation: true  #关闭自我保护模式(缺省为打开)生产环境需要打开
    eviction-interval-timer-in-ms: 60000 # 续期时间,即扫描失效服务的间隔时间(缺省为60*1000ms)
  client:
    register-with-eureka: true #设置是否将自己作为客户端注册到注册中心(缺省true,单节点设置成false,集群需要互相同步)
    fetch-registry: true # 设置是否从注册中心获取注册信息(缺省true,单节点设置成false,集群需要互相同步)
    serviceUrl: 
        defaultZone: http://172.16.2.54:8761/eureka/,http://172.16.2.54:8762/eureka/,http://172.16.2.54:8763/eureka/  #注册的地址
  instance:
    instance-id: ${spring.cloud.client.ip-address}:${server.port}  #注册中心显示的名称IP:端口  默认 机器主机名:应用名称:应用端口
    prefer-ip-address: true #设置微服务调用地址为IP优先(缺省为false)

2.Dockerfile文件如下,DockerFile语法,详细参考《dockerFile演示以及语法详解》

FROM openjdk:8-jre

RUN mkdir /app

COPY badger-spring-cloud-eureka-0.0.1-SNAPSHOT.jar /app/

CMD java -jar /app/badger-spring-cloud-eureka-0.0.1-SNAPSHOT.jar

EXPOSE 8761

我的当前上下文路径下,执行构建命令

docker build -t eureka .

3.创建eureka镜像的实例

根据上面的springboot的配置文件,我的eureka的使用的是8761的端口,我的本机ip是172.16.2.54,我的三个eureka的实例的映射物理机的端口分别是8761,8762,8763。

我这边,直接run三个实例,端口分别做映射就可以了

docker run -p 8761:8761 --name eureka_01 -d eureka
docker run -p 8762:8761 --name eureka_02 -d eureka
docker run -p 8763:8761 --name eureka_03 -d eureka

http://localhost:8761/ 查看eureka的启动情况,如图所示,启动完成

4.使用docker-compose部署eureka集群

上述使用传统的docker部署的eureka集群,下面使用docker-compose部署,关于docker-compose的使用,详细参考《Docker Compose 简介、命令语法和使用演示》

创建docker-compose.yml的文件,写入内容如下

version: '3'
services:
  badger-eureka-1:
    restart: always
    build: .
    container_name: badger-eureka-1
    ports:
      - 8761:8761
  badger-eureka-2:
    restart: always
    build: .
    container_name: badger-eureka-2
    ports:
      - 8762:8761
  badger-eureka-3:
    restart: always
    build: .
    container_name: badger-eureka-3
    ports:
      - 8763:8761

在有docker-compose.yml文件的目录下,使用命令构建

docker-compose up -d

注意:docker-compose.ymlDockerfile以及badger-eureka-0.0.1-SNAPSHOT.jar,在同一个目录下

可以看到,镜像有三个,镜像的ID,却是一样的,这个其实表示,只构建了一个镜像,这个镜像有三个名字,docker其实是一个分层技术。

卸载

docker-compose down
原创文章 83 获赞 155 访问量 36万+

猜你喜欢

转载自blog.csdn.net/qq_28410283/article/details/101204836