千家信息网

Docker中怎么部署eureka集群

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,今天就跟大家聊聊有关Docker中怎么部署eureka集群,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、环境准备1.docker环境cen
千家信息网最后更新 2026年11月03日Docker中怎么部署eureka集群

今天就跟大家聊聊有关Docker中怎么部署eureka集群,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

一、环境准备

1.docker环境
  • centos7下的安装:https://www.jianshu.com/p/ec02810d6a2b

  • docker常用命令:https://www.jianshu.com/p/af7977b1075c

  • 没有用过docker的最好先熟悉一下docker,后续内容已经省略docker的相关解释

2.springcloud-eureka项目
  • 博客地址:https://my.oschina.net/devilsblog/blog/3114468

  • 码云地址:https://gitee.com/devilscode/cloud-practice/tree/eureka-test/

  • 如果想动手的可以按照帖子来,如果不想动手的可以直接down代码

3.docker-compose环境
  • 执行命令 :yum install docker-compose -y

  • 以上环境是使用在docker中配置eureka集群的最小内容,提前准备最好

二、本机运行

  • Idea运行ServerApplication.main(),打开浏览器输入 http://localhost:9000 可以看到如下图即可

  • 编译成jar运行

    1. 在项目根目录下执行 mvn install,在target下能看到eureka-server-1.0-SNAPSHOT.jar

    2. 跳转目录到target下,输入 java -jar eureka-server-1.0-SNAPSHOT.jar > tmp.log

    3. 打开刷新浏览器窗口依然能看到界面就正常

    4. 此处有个坑,就是不要用Idea自带的jar命令,会报错没有主清单列表

三、Docker单节点试运行

step1:上传文件

step2:创建Dockerfile

# docker image for eureka-server# version 1.0.0# author Calvin# 代表基础环境FROM java:8# 代表映射文件夹VOLUME /tmp# 将文件复制到镜像ADD eureka-server-1.0-SNAPSHOT.jar eureka-server.jar# 映射出来的端口EXPOSE 9000# 脚本RUN bash -c 'touch eureka-server.jar'# 启动命令ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/eureka-server.jar"]

step3:编译docker镜像

  1. 编译
    $ docker build -t eureka-server .

    • -t 表示指定镜像名称

    • 别忽略最后的英文点号.

    • 执行的目录必须有Dockerfile

    • 第一次执行可能需要下载java8的base镜像,耗时较久

  2. 查看结果
    $ docker images

step4:启动镜像验证结果

  1. 启动镜像 docker run -d -p 9000:9000 --name eureka-server eureka-server

  2. 页面查看

四、在Docker中多个节点运行

  1. 源码修改

复制application.yml文件为两份,分别为application-slave1.yml,application-slave2.yml 内容分别如下

# slave1server:  port: 9000eureka:  instance:    hostname: eureka-server1  client:    register-with-eureka: true    fetch-registry: true    service-url:      defaultZone: http://eureka-server2:9000/eureka# -------------------------------------------------------# slave2server:  port: 8080eureka:  instance:    hostname: eureka-server1  client:    register-with-eureka: true    fetch-registry: true    service-url:      defaultZone: http://eureka-server1:9000/eureka
  1. 增加docker-compose配置

version: '2'services:  eureka-server1:    image: eureka-server    container_name: eureka-server1    hostname: eureka-server1    networks:      - eureka-net    ports:      - 9000:9000    environment:      - spring.profiles.active=slave1  eureka-server2:    image: eureka-server    container_name: eureka-server2    hostname: eureka-server2    networks:      - eureka-net    ports:      - 9001:9001    environment:      - spring.profiles.active=slave2networks:  eureka-net:    driver: bridge
  1. 重新编译docker镜像

#停用原来的服务docker stop eureka-server#删除服务历史,避免后续启动的时候服务名重复docker rm eureka-server#删除原有镜像docker rmi eureka#重新生成镜像, 此处依然生成一个镜像,和之前步骤一致docker build -t eureka-server
  1. 启动多个服务

# 目录为Dockerfile和 docker-compose.yml文件夹docker-compose up -d
  1. 验证结果

#查看服务docker ps | grep eureka-server #查看日志,等待启动成功docker logs eureka-server1 -f #查看端口netstat -nltp

图中已经可以看到,eureka-server注册了两个

五、三组测试

此部分属于课题之外,吃瓜群众们可以撤了

  1. 把本地的一个注册中心再注册进集群中,从远程的集群中可以看到注册进来的eureka-server

    • 结果

  2. 向本地的注册中心注册common-service服务,然后把feign-service注册向远程中心9001端口,再调用处理

    • 远程9000端口

    • 远程9001端口

    • 用feign-service调用common-service

    • 现象

    • 结论

    1. 如果注册集群,集群之间的注册应该有相互通知,单方面注册会导致服务不同步

    2. 即使有一个中间的能看到三个服务的注册中心,也会由于部分实例信息没有同步而导致找不到对应的服务

    3. 远程9000端口上可以看到有三个服务,远程9001上只有两个服务

    4. feign-service调用common-service发生异常

  3. 把common-service重新注册到远程中,注册成功以后先调用一次,然后停用所有注册中心

    • 结果:

    • 结论:

      feign-service已经将注册进来的服务实例信息拉取到本地缓存,即使注册中心挂掉,短时间(具体时间节点应该是注册中心重启成功之前)不会影响服务的调用

六、总结

  1. 实践docker启动微服务,企业常用操作练习

  2. 在docker中部署注册中心的集群,以及批量部署其他服务,暂时是手动,后续研究k8s

  3. 探究eureka集群时候的三个问题,算是尝试eureka的特性场景,加固记忆

看完上述内容,你们对Docker中怎么部署eureka集群有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

服务 镜像 集群 内容 端口 文件 环境 结果 命令 编译 运行 成功 三个 目录 节点 两个 代表 信息 地址 多个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司起名 为想互联网科技怎么样 广州百单互联网科技有限公司 美国互联网保险保险科技 科技制造互联网公司 互联网金融公司科技 中国互联网科技发展 北京互联网络科技有限公司 融贸通互联网科技 科技大学互联网专业好不好 互联网公司会议桌创意科技软装饰 洛阳昕诺飞互联网科技有限公司 四川慕妮娅互联网科技有限公司 保险科技服务互联网营销体系 滨湖区互联网智能科技产品有哪些 上海创道互联网络科技有限公司 工业互联网科技成果转化 互联网科技品牌 互联网科技大佬云集 互联网企业和网络科技有限公司 互联网科技垄断 互联网女皇 腾讯科技 火传媒上海互联网科技 长亮科技 互联网金融 阿里互联网科技公司 想开互联网科技公司怎么样 洛阳共同富裕互联网科技有限公司 用友工业互联网科技发展 深圳互联网科技园地址 互联网的黑科技实验室
0