Register to Eureka from Docker with a custom IP Register to Eureka from Docker with a custom IP docker docker

Register to Eureka from Docker with a custom IP


Both previous answers are correct, but I'll make copy-pasting easier.

What you should do is add an environment variable with the host IP when starting your container and in your Spring Boot application.yml file includes it.

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/

Running with Docker

docker run -p <port>:<port> -e HOST='192.168.0.106' <image name>

Running with docker-compose

my_service:  image: image_name  environment:    - HOST=192.168.0.106  ports:    - your_port:container_port


You can configure it in your application.yml:

eureka:    instance:        ipAddress: 192.168.x.x


Register to Eureka with a custom IP and a custom PORT:

server:  port: 18090eureka:  instance:    prefer-ip-address: true    ip-address: 10.150.160.21    non-secure-port: 8080

I run into a situation where 10.150.160.21:8080 is mapped to 192.168.1.124:18090 over a firewall. The application is running on 192.168.1.124:18090 but have to register to Eureka with 10.150.160.21:8080.

It works for me.