Spring boot Spring boot管理客户端未注册为docker swarm服务
我使用的是SpringBootAdmin。我的引导管理客户端作为docker swarm服务运行。 当我作为容器启动客户端应用程序时,它会注册到管理服务器。但当我启动客户端作为docker swarm服务时,注册失败。 我尝试了Spring boot Spring boot管理客户端未注册为docker swarm服务,spring-boot,docker,docker-swarm,spring-boot-admin,Spring Boot,Docker,Docker Swarm,Spring Boot Admin,我使用的是SpringBootAdmin。我的引导管理客户端作为docker swarm服务运行。 当我作为容器启动客户端应用程序时,它会注册到管理服务器。但当我启动客户端作为docker swarm服务时,注册失败。 我尝试了spring.boot.admin.client.preference ip=true,但仍然失败。 我如何解决这个问题 java.lang.IllegalArgumentException: b77cbc25ddfb: b77cbc25ddfb: Temporary f
spring.boot.admin.client.preference ip=true
,但仍然失败。
我如何解决这个问题
java.lang.IllegalArgumentException: b77cbc25ddfb: b77cbc25ddfb: Temporary failure in name resolution
at de.codecentric.boot.admin.client.registration.DefaultApplicationFactory.getLocalHost(DefaultApplicationFactory.java:186) ~[spring-boot-admin-client-2.3.1.jar:2.3.1]
at de.codecentric.boot.admin.client.registration.DefaultApplicationFactory.getServiceHost(DefaultApplicationFactory.java:168) ~[spring-boot-admin-client-2.3.1.jar:2.3.1]
at de.codecentric.boot.admin.client.registration.DefaultApplicationFactory.getServiceBaseUrl(DefaultApplicationFactory.java:103) ~[spring-boot-admin-client-2.3.1.jar:2.3.1]
at de.codecentric.boot.admin.client.registration.ServletApplicationFactory.getServiceUrl(ServletApplicationFactory.java:63) ~[spring-boot-admin-client-2.3.1.jar:2.3.1]
at de.codecentric.boot.admin.client.registration.ServletApplicationFactory.getManagementBaseUrl(ServletApplicationFactory.java:76) ~[spring-boot-admin-client-2.3.1.jar:2.3.1]
at de.codecentric.boot.admin.client.registration.DefaultApplicationFactory.getHealthUrl(DefaultApplicationFactory.java:154) ~[spring-boot-admin-client-2.3.1.jar:2.3.1]
at de.codecentric.boot.admin.client.registration.DefaultApplicationFactory.createApplication(DefaultApplicationFactory.java:80) ~[spring-boot-admin-client-2.3.1.jar:2.3.1]
at de.codecentric.boot.admin.client.registration.DefaultApplicationRegistrator.register(DefaultApplicationRegistrator.java:56) ~[spring-boot-admin-client-2.3.1.jar:2.3.1]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:na]
at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source) ~[na:na]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na]
at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]
Caused by: java.net.UnknownHostException: b77cbc25ddfb: b77cbc25ddfb: Temporary failure in name resolution
at java.base/java.net.InetAddress.getLocalHost(Unknown Source) ~[na:na]
at de.codecentric.boot.admin.client.registration.DefaultApplicationFactory.getLocalHost(DefaultApplicationFactory.java:183) ~[spring-boot-admin-client-2.3.1.jar:2.3.1]
... 14 common frames omitted
Caused by: java.net.UnknownHostException: b77cbc25ddfb: Temporary failure in name resolution
at java.base/java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) ~[na:na]
at java.base/java.net.InetAddress$PlatformNameService.lookupAllHostAddr(Unknown Source) ~[na:na]
at java.base/java.net.InetAddress.getAddressesFromNameService(Unknown Source) ~[na:na]
at java.base/java.net.InetAddress$NameServiceAddresses.get(Unknown Source) ~[na:na]
at java.base/java.net.InetAddress.getAllByName0(Unknown Source) ~[na:na]
... 16 common frames omitted
编辑:
spring:
boot:
admin:
client:
instance:
prefer-ip: true
service-url: http://${HOST_NAME}:${PORT}/
name: ${APP_NAME}
在此添加之后,docker服务注册到管理服务器。但是,当我增加服务实例数(例如:从1增加到2)时,只有一个应用程序注册到管理服务器(所以所有实例自然都执行一个公开端口)
我可以将docker容器id等信息设置为客户端,以便在管理服务器中查看应用程序的所有实例吗