spring-cloud项目使用docker部署后,无法访问问题。
想请教个问题。
比如有3个spring-cloud项目,A(eureka-server),B(api-server),C(api-client)
A 和 B 都是使用docker部署的,C 非docker部署
现在A和C都成功的注册到了B中,但是C的地址却是docker内部的ip,请问下如何操作才能让A通过B访问到C ?
spring-cloud项目使用docker部署后,无法访问问题。
想请教个问题。
比如有3个spring-cloud项目,A(eureka-server),B(api-server),C(api-client)
A 和 B 都是使用docker部署的,C 非docker部署
现在A和C都成功的注册到了B中,但是C的地址却是docker内部的ip,请问下如何操作才能让A通过B访问到C ?
我这边都是通过k8s构造一个dns,然后统一用domain去跑的。像这种内外容器的话,只要在dns里写一下外部IP就完事了。
给C指定一个外部IP
仔细看了下,发现问题描述写错了。。。重新描述下
比如有3个spring-cloud项目,A(注册中心eureka-server),B(服务提供端api-server),C(客户端调用端api-client)
A 和 B 都是使用docker部署的,C 非docker部署
现在B和C都成功的注册到了A中,但是B的地址却是docker内部的ip,请问下如何操作才能让C通过A访问到B?
正常情况下,应该是不能的。网络路由的问题。
在默认你无容器网络的情况下,除非
1:B注册到A的时候,使用的是宿主机的ip+端口,未深入研究spring cloud,需要google。
2: C 和A在同一台宿主机,那么他们的路由规则是可以通信的。
在有容器网络的情况下,比如flannel,
那么C的宿主机需要安装有docker和flannel就可以。
重新打个Image run的时候加个参数 --net=host。这样就会默认使用宿主机的IP。
springcloud 多服务,建议使用docker swarm或者K8S去跑,单纯的docker 容器暴露IP不行的
楼主,这问题解决了吗?
我现在也遇到一样的问题呀,就是我多个微服务都是docker镜像推送到k8s部署的,k8s映射端口号出来,访问登陆页面登陆不进去