rancher上微服务环境中,docker的一个网络问题,请大神帮忙看一下
我先描述一下使用环境,然后是问题。
使用环境描述:
用的是低版本rancher管理docker,搭建springcloud微服务系统,之前容器镜像使用的是docker的bridge模式。
但是由于低版本rancher出现了一个dns的问题,在某些宿主机上的容器中无法得到rancher的地址即http://rancher-medata.
网上查说是rancher升级版本就可以解决这个问题,但是由于目前这个平台管理的主机比较多,不能升级。
所以,我就尝试将容器的网络模式改为host模式,这样使容器直接使用当前宿主机ip,绑定服务来使用。
问题描述:
在之前容器镜像使用bridge模式的时候,镜像服务启动起来使用容器中自己分配的ip,netstat监听的端口形式是,...:9001,或者*:9001.这样用宿主机ip登陆网站时,直接转发到9001端口,走docker0就可以使用了。
但是当使用host网络模式的时候,我在容器中使用的宿主机的ip去启动springcloud服务。但是无论我如何修改微服务的ip,hostname,netstat发现监听端口的形式都是,127.0.0.1:9001.服务总是自动绑定到127.0.0.1上,这样我用宿主机的ip登陆服务,就无法获取到了,只有在本机走127.0.0.1才行。
这就是问题所在。
希望大神帮忙看下,如何让容器在host模式下,启动的微服务也绑定到....:9001,或者直接绑定到当前宿主机ip ,xxx.xxx.xxx.xxx:9001.
或者通过iptables配置,转发宿主机ip的请求到127.0.0.1地址上,这样可以使用么。因为没有尝试过,还劳烦大神们帮忙看一下。
问题就是这样,如果描述的不够清楚,请留言。谢谢