docker 使用網橋實現跨主機容器鏈結

2021-07-30 04:34:04 字數 1460 閱讀 4236

基本思想:

由於docker容器通過docker0 網橋實現同一主機間中,容器的ip位址分配和訪問,所以,如果希望docker跨主機訪問,最簡單的方式就是將不同主機的docker0 設定為同一網段。

那麼怎麼實現跨主機呢?我這裡將本機網絡卡也通過網橋來連線,那麼,整體網路拓撲結構就是這樣:

但是通過這種橋接,所有網絡卡都要在乙個網段下,所以要對每個docker守護程序對ip的分配做出限制

下面,我們就來實現這個結構:

操作:我用的是兩台centos7.1的伺服器

host1:10.20.23.144 eth0

host2:10.20.23.213 eth0

具體操作如下:

以下,以host1 為例,host2 上操作相似,只是網絡卡名字不一樣,我在這裡,沒有使用預設的docker0 網橋,而是新建了虛擬網橋.

brctl addbr br1

為網橋分配乙個同網段ip

host1

ifconfig br1 192.168.2.1 netmask 255.255.255.0  

host2

ifconfig br1 192.168.2.2 netmask 255.255.255.0  

host1,host2都要操作:

橋接本地網絡卡:

brctl addif br1 eth0

這裡,我們就準備好了網橋設定

下面我們來修改docker的配置,使用我們新建的網橋代替docker0:

修改 /etc/sysconfig/docker檔案

host1

cat /etc/sysconfig/docker

docker_opts="--registry-mirror= -b=br1 --fixed-cidr='192.168.2.64/26' "

host2

docker_opts="--registry-mirror= -b=br1 --fixed-cidr='192.168.2.128/26' "

這裡,-b 用來指定容器連線的網橋名字

--fixed-cidr用來限定為容器分配的ip位址範圍

儲存檔案並重啟docker服務

systemctl restart docker

下面,就可以來驗證:

分別在兩個host上啟動乙個容器

docker run -it dockersdd/cct1

在容器中執行ping命令檢視連線情況 

[root@5dc021f7ecf8 /]# ping 172.17.0.6

ping 172.17.0.6 (172.17.0.6) 56(84) bytes of data.

64 bytes from 172.17.0.6: icmp_seq=1 ttl=64 time=0.047 ms

docker跨主機容器訪問(網橋實現)

本篇文章主要講述利用網橋方式實現docker跨主機容器訪問,參考文章 docker網路基礎 docker跨主機容器訪問通訊 在同一宿主機下的docker的容器之間是預設互相聯通的。在容器內通過ifconfig可以檢視到ip位址。在不同的容器中來執行ping是可以ping通的。但我們通過觀察發現,每乙...

DOCKER中使用網橋實現跨主機容器連線

一 安裝網橋管理工具 yum y install bridge utils二 修改docker0的位址,並重啟docker服務 修改docker位址 ifconfig docker0 192.169.200.1 netmask 255.255.255.0 重啟docker systemctl res...

docker通過網橋跨主機連線

使用網橋實現跨主機容器連線 在同乙個 docker 的主機中 docker 容器使用預設的 docker0 網橋來進行網路的通訊,如果將連線容器的網橋也橋接到 docker 主機的網絡卡上,並且將網橋分配的 ip位址與 docker 主機分配的 ip位址設定為同一 ip段,就相當於將容器與 dock...