docker 容器内部通信
在构建微服务时,docker 运行了eureka,还有zuul网关,在zuul网关中向eureka注册的地址域名是localhost,这样zuul网关是运行不起来的,注册不到eureka
因为在zuul容器中不能通过localhost访问到eureka,
解决方法:
在运行容器时指定同一网络
先在docker 中新建一个网络
# docker network create my_net
这时docker中就多了一个bridge网络my_net
[root@VM_0_2_centos ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 2e7cd7c45c81 bridge bridge local 678606a50297 host host local 6ec6d079b765 my_net bridge local 22d680213505 none null local [root@VM_0_2_centos ~]#
在运行eureka时添加 --network my_net --network-alias eureka
其中--network my_net 是指定网络为my_net
--network-alias eureka 是创建一个别名 eureka
如:
docker run --network my_net --network-alias eureka -p 8100:8100 -d eureka
zuul 运行
docker run --network my_net --network-alias zuul -p 80:80 -d zuul
将zuul的properties文件中localhost改成eureka
eureka.client.service-url.defaultZone = http://eureka:8100/eureka/
此时就可以注册到eureka了
问题解决!
浙公网安备 33010602011771号