第一步:創(chuàng)建自定義網(wǎng)絡(luò)
docker network create --subnet=172.18.0.0/24 docker-br0
備注:這里選取了172.18.0.0網(wǎng)段,也可以指定其他任意空閑的網(wǎng)段,docker-br0為自定義網(wǎng)橋的名字,可自己任意取名。
注意:這里子網(wǎng)掩碼要使用255.255.255.0也就是IP后面的那個24,因?yàn)楹竺嬉褂胕ptables配置路由表,我之前使用255.255.0.0 無法配置.所以這里配置成24.
創(chuàng)建網(wǎng)橋之后,使用ifconfig查看 會多出一個網(wǎng)橋,該網(wǎng)橋在docker啟動或者重啟之后,會自動顯示出來。永久的,可以使用docker network rm docker-br0 移除網(wǎng)橋。
第二步:在你自定義的網(wǎng)段選取任意IP地址作為你要啟動容器IP
docker run -itd --name my-centos3 --network myNetwork --privileged=true --ip 172.18.0.6 -p 5000:22 <image id> /sbin/init
第三步:跨主機(jī)容器互訪:
第四步:在192.168.1.106虛擬機(jī)上,給容器綁定固定ip, 按照之前 第一步到 第三步.
第五步:在兩個容器中互相訪問,發(fā)現(xiàn)跨主機(jī)容器互訪,并不能ping通。
第六步:配置路由表
#添加路由規(guī)則 ip route add 對方容器所在的ip網(wǎng)段/子網(wǎng)掩碼 via 對方虛擬機(jī)ip dev 通過哪個網(wǎng)卡通信
如:ip route add 172.18.0.0/16 via 192.168.1.24 dev ens33
添加完成之后,可以使用 route命令 查看添加之后的規(guī)則,也可以使用 ip route del 172.172.1.0/24 移除路由規(guī)則
在192.168.1.24 和 192.168.1.26虛擬機(jī)上,分別添加對應(yīng)的路由規(guī)則!
192.168.1.24: ip route add 172.19.0.0/24 via 192.168.1.26 dev ens33
192.168.1.26: ip route add 172.18.0.0/24 via 192.168.1.24 dev ens33
第七步:在兩個容器中互相訪問,發(fā)現(xiàn)可以實(shí)現(xiàn)跨主機(jī)容器互相ping通了。
到此這篇關(guān)于Docker 跨主機(jī)容器間相互訪問的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Docker 跨主機(jī)容器間相互訪問內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!