Blu*_*lue 6 docker netflix-eureka
我在Docker VM中运行Spring Cloud Eureka.我有注册的服务,但是他们在Docker VM中使用他们的IP地址,但为了能够正确使用它们,我需要他们使用我可以从VM外部访问的IP地址.
例如在我的VM中使用172.xxx的寄存器和我可以使用192.168.xxx从我的浏览器访问REST接口我需要它们注册为192.168.xxx
如何告诉我的服务注册特定的IP地址?
先前的两个答案都是正确的,但我会让复制粘贴变得更加容易。
您应该做的是在启动容器时在主机IP中添加一个环境变量,并在Spring Boot application.yml文件中包括它。
application.yml
eureka:
instance:
# Necessary for Docker as it doesn't have DNS entries
prefer-ip-address: true
# Necessary for Docker otherwise you will get 172.0.0.x IP
ip-address: "${HOST}"
client:
serviceUrl:
# Location of your eureka server
defaultZone: http://192.168.0.107:8761/eureka/
Run Code Online (Sandbox Code Playgroud)
使用Docker运行
docker run -p <port>:<port> -e HOST='192.168.0.106' <image name>
Run Code Online (Sandbox Code Playgroud)
使用docker-compose运行
my_service:
image: image_name
environment:
- HOST=192.168.0.106
ports:
- your_port:container_port
Run Code Online (Sandbox Code Playgroud)
您可以在您的application.yml:
eureka:
instance:
ipAddress: 192.168.x.x
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3910 次 |
| 最近记录: |