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了

问题解决!

 

你可能感兴趣的:(docker 容器内部通信)