聊聊docker跨主機之間容器通信問題
一、環(huán)境信息
主機名 | 宿主機IP | 容器分配網(wǎng)段 | 啟動容器的IP |
---|---|---|---|
testa | 192.168.1.105 | 172.172.0.0/24 | 172.172.0.10 |
testb | 192.168.1.106 | 172.172.1.0/24 | 172.172.1.10 |
二、具體實踐
1.在testa主機上創(chuàng)建docker橋接網(wǎng)絡(luò)
docker network create --subnet=172.172.0.0/24 docker-br0
2.在testb主機上創(chuàng)建docker橋接網(wǎng)絡(luò)
docker network create --subnet=172.172.1.0/24 docker-br0
備注:這里選取了172.172.0.0網(wǎng)段,也可以指定其他任意空閑的網(wǎng)段,docker-br0為自定義網(wǎng)橋的名字,可自己任意取名。
注意:這里子網(wǎng)掩碼要使用255.255.255.0也就是IP后面的那個24,因為后面要使用iptables配置路由表,我之前使用255.255.0.0 無法配置.所以這里配置成24.\
創(chuàng)建網(wǎng)橋之后,使用ifconfig查看 會多出一個網(wǎng)橋,該網(wǎng)橋在docker啟動或者重啟之后,會自動顯示出來。永久的,可以使用docker network rm docker-br0 移除網(wǎng)橋。
3.在testa主機中你自定義的網(wǎng)段選取任意IP地址作為你要啟動容器IP
docker run -i -d --net docker-br0 --ip 172.172.0.10 --name test1 3bee3060bfc8 /bin/bash
testb主機中你自定義的網(wǎng)段選取任意IP地址作為你要啟動容器IP
docker run -i -d --net docker-br0 --ip 172.172.1.10 --name test2 3bee3060bfc8 /bin/bash
4.進入testa主機中的docker
docker exec -it test1 /bin/bash
進入testb主機中的docker
docker exec -it test2 /bin/bash
5. 配置路由表
添加路由規(guī)則
ip route add 對方容器所在的ip網(wǎng)段/子網(wǎng)掩碼 via 對方虛擬機ip dev 通過哪個網(wǎng)卡通信
testa主機中
ip route add 172.172.1.0/24 via 192.168.1.106 dev eno16777736
testb主機中
ip route add 172.172.0.0/24 via 192.168.1.105 dev eno16777736 \
添加完成之后,可以使用 route命令 查看添加之后的規(guī)則,也可以使用 ip route del 172.172.1.0/24 移除路由規(guī)則
6測試跨主機容器互ping
到此這篇關(guān)于docker跨主機之間容器通信問題的文章就介紹到這了,更多相關(guān)docker跨主機容器通信內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux中無make命令的問題(make: *** 沒有指明目標并且找不到 makefile及make命令安裝方法)
這篇文章主要介紹了linux中無make命令的問題(make: *** 沒有指明目標并且找不到 makefile及make命令安裝方法),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08Docker部署nginx并修改配置文件的實現(xiàn)方法
這篇文章主要介紹了Docker部署nginx并修改配置文件的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09如何在centos的docker里安裝jupyter并開放端口
上次有一朋友問小編如何在centos的docker里安裝jupyter并開放端口呢?在這就不一一回復(fù)大家了,下面小編把我的個人經(jīng)驗分享到腳本之家平臺,感興趣的朋友一起看看吧2021-08-08Docker為網(wǎng)絡(luò)bridge模式指定容器ip的方法
Docker在創(chuàng)建容器時有四種網(wǎng)絡(luò)模式,bridge為默認不需要用--net去指定,其他三種模式需要在創(chuàng)建容器時使用--net去指定。那Docker為網(wǎng)絡(luò)bridge模式指定容器ip該如何實現(xiàn)呢?下面通過通過這篇文章一起看看吧,文中給出了詳細的示例代碼,有需要的可以參考借鑒。2016-11-11docker網(wǎng)絡(luò),docker-compose?network問題
這篇文章主要介紹了docker網(wǎng)絡(luò),docker-compose?network問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01