如何實現跨主機之間docker容器通信問題(方法一)


這里采用最原始的橋接模式來實現跨主機直接docker容器通信問題

 如果只是簡單創建一個bridge模式的網絡是無法給容器指定ip的

一些常用命令

    brctl show br0
    brctl addbr br0
    brctl addif br0 eth0
    ifconfig br0 down

 1.先安裝brctl工具包

apt-get install bridge-utils

2.創建一個docker的橋接網絡類型(ip填寫和同主機網段的ip)

docker network create --subnet=192.168.17.100/16 br0

這里我的宿主機ip為192.168.17.9 網關為192.168.17.254 docker的ip需要同網段即為 192.168.17.*

3.利用網橋工具將docker的網橋掛載到宿主機網卡上

brctl addif br0 eth0
brctl addif br0(docker網橋) eth0(宿主機網卡)

4.設置docker網卡ip

ifconfig br0 192.168.17.100 up

5.啟動容器 需提前指定好ip

sudo docker run -it  -h test --privileged=True --net=staticnet --ip 192.168.17.101 --name="docker1" -p 1111:80 -p 1112:8080 ambari:v1.0 /bin/bash

6.對另外一台機器執行上述操作,注意ip別沖突

7.在docker里ping跨主機的另一個docker,如果ping的通

ERROR: Pool overlaps with other one on this address space

在docker中創建networks的時候有時候會報ERROR: Pool overlaps with other one on this address space的錯誤,這是因為目標網段已經存在的原因,通常這發生在將要創建的networks手動指定了subnet網段地址的時候。

這時有兩個選擇,一是查看已存在的網段是否有容器正在使用,如果沒再用了可以刪除該網段對應的網卡,二是修改目標的subnet網段地址。

 

問題解決!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM