在Docker中不能链接Consul和Spring Boot应用程序
我有以下configuration的Spring Boot应用程序:
spring: thymeleaf: cache: false cloud: consul: host: consul port: 8500 discovery: prefer-ip-address: true instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}}
我想运行docker-compose(Docker 1.11.2,docker-compose 1.7.1):
consul: image: progrium/consul:latest container_name: consul hostname: consulhost ports: - "8400:8400" - "8500:8500" - "8600:53" command: "-server -bootstrap-expect 1 -ui-dir /ui" collector-server: container_name: collector-server image: io.thesis/collector-server ports: - "9090:9090" links: - consul:consul
不幸的是,这是行不通的,我得到:com.ecwid.consul.transport.TransportException:java.net.ConnectException:连接被拒绝。
我完全不知道为什么它不能连接到Consul,因为我可以用这种方式连接到其他系统,例如rabbitmq。
谢谢你的任何想法!
如果你试图在容器启动时立即连接,那么领事还没有准备好接收连接。
您需要编写一个入口脚本来等待连接可用,或者甚至只是重新尝试连接几次。 有关更多信息,请参阅https://docs.docker.com/compose/startup-order/ 。
- Kafka Docker,docker-maven-plugin,Spring Boot
- 访问网页问题(上传到wildfly)
- Docker群集服务端口不可访问
- 在maven中同时运行docker容器和spring启动应用程序是可能的吗?
- Elasticsearch高山docker与jdk8 java.time.Instant导致epochSecond错误
- 在使用docker-compose时,应用程序不能注册为eureka
- validationdocker化的Spring Boot应用程序对docker化和链接的ActiveMQ
- elasticsearch 5.5.3 Java客户端API NoNodeAvailableException与docker
- Docker-compose不会为spring启动应用程序生成日志文件