docker compose启动的服务之间访问出现no route to host

环境:
两个spring cloud项目镜像,一个是config配置中心,一个是eureka服务治理。
eureka的配置参数要从config中取,eureka中config地址为config宿主机地址和对应端口。

问题:
通过docker compose启动,eureka日志中出现no route to host,访问不到config服务。

但是!我尝试通过docker run 分别启动两个任务,则没有任何问题。

有大神知道什么原因,怎么解决吗?


1.15更新
我又尝试两个服务分别写两个docker-compose文件启动,结果eureka访问config换了一个异常出现,connection refused

阅读 9.4k
3 个回答
  • 估计是服务还没有就绪。
  • 假设服务A依赖于服务Bdocker compose在启动服务的过程中,能保证服务B容器先于服务A容器启动,但无法直接保证服务B先于服务A就绪。比如服务B在容器启动后一秒后才能就绪,而服务A在容器启动后200毫秒就能就绪,那么即使是服务B先启动也没用。
  • Control startup order in Compose

防火墙拦截了eureka访问config,关闭防火墙试试 systemctl stop firewall
然后重启docker

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题