3 回答

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超0個(gè)贊
這里我是這樣解決的?
因?yàn)閐ocker是172的 而且即使修改了微服務(wù)注冊(cè)到注冊(cè)中心的ip改成了192也是不行
解決辦法: 改變docker的網(wǎng)絡(luò)模式 我這里改成了host模式 共用物理機(jī)的 就可以了?
在創(chuàng)建容器的時(shí)候 --net=host 就可以了

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊
有幾個(gè)思路:
1、在啟動(dòng)服務(wù)的時(shí)候由宿主設(shè)備報(bào)告 ip
2、啟動(dòng)服務(wù)的時(shí)候向容器環(huán)境變量中注入宿主 ip 信息
3、注冊(cè)中心收到注冊(cè)請(qǐng)求時(shí),從網(wǎng)絡(luò)層拿 ip

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊
docker swarm 提供的overlay network可以提供跨主機(jī)的容器內(nèi)網(wǎng)絡(luò)通訊,本機(jī)內(nèi)容器可以在啟動(dòng)時(shí)指定network來(lái)組成內(nèi)部網(wǎng)絡(luò),然后可以在swarm主機(jī)上用host模式部署nginx,使用etcd,consul等動(dòng)態(tài)注冊(cè)服務(wù)和更新nginx的反向代理配置來(lái)達(dá)到動(dòng)態(tài)服務(wù)發(fā)現(xiàn)的目的。
不過(guò)overlay目前是所有跨主機(jī)通訊方式中性能損耗最大的,達(dá)到60%。網(wǎng)上有人做過(guò)測(cè)試,你可以找來(lái)看看。因此就目前來(lái)說(shuō),生產(chǎn)環(huán)境還是要考慮kubernetes或者mesos
添加回答
舉報(bào)