一 执行以下命令构建Docker镜像
mvn clean package docker:build
[root@master microservice-discovery-eureka-ha]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
itmuch/microservice-discovery-eureka-ha 0.0.1-SNAPSHOT e3583aa71ccb 14 seconds ago 685MB
二 编写application.xml
spring:
application:
name: microservice-discovery-eureka-ha
---
spring:
profiles: peer1 # 指定profile=peer1
server:
port: 8761
eureka:
instance:
hostname: peer1 # 指定当profile=peer1时,主机名是peer1
client:
serviceUrl:
defaultZone: http://peer2:8762/eureka/ # 将自己注册到peer2这个Eureka上面去
---
spring:
profiles: peer2
server:
port: 8762
eureka:
instance:
hostname: peer2
client:
serviceUrl:
defaultZone: http://peer1:8761/eureka/
三 编写docker-compose.yml
version: "2"
services:
peer1: # 默认情况下,其他服务可使用服务名称连接到该服务。对于peer2节点,它需连接http://peer1:8761/eureka/,因此,我们可配置该服务的名称为peer1。
image: itmuch/microservice-discovery-eureka-ha:0.0.1-SNAPSHOT
ports:
- "8761:8761"
environment:
- spring.profiles.active=peer1
peer2:
image: itmuch/microservice-discovery-eureka-ha:0.0.1-SNAPSHOT
hostname: peer2
ports:
- "8762:8762"
environment:
- spring.profiles.active=peer2
四 执行以下命令启动项目
docker-compose up
五 测试
http://192.168.0.100:8761/
![](https://i-blog.csdnimg.cn/blog_migrate/0a86294cfc4c40e9b89039da82e4b825.png)