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