我先描述一下使用環境,然后是問題。
使用環境描述:
用的是低版本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地址上,這樣可以使用么。因為沒有嘗試過,還勞煩大神們幫忙看一下。
問題就是這樣,如果描述的不夠清楚,請留言。謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/51993.html
標籤:Docker
