?
This document uses PHP Chinese website manual Release
本節(jié)介紹如何構(gòu)建自己的網(wǎng)橋來(lái)替換 Docker 默認(rèn)網(wǎng)橋。這是一個(gè)在安裝 Docker 時(shí)自動(dòng)創(chuàng)建名為bridge
的bridge
網(wǎng)絡(luò)。
注意:通過(guò) Docker 網(wǎng)絡(luò)功能,您可以創(chuàng)建除默認(rèn)網(wǎng)橋以外的用戶(hù)定義網(wǎng)絡(luò)。
您可以在啟動(dòng) Docker 之前設(shè)置自己的橋接器,并將 Docker 配置為使用橋接器而不是默認(rèn)docker0
橋接器。
1. 配置新的網(wǎng)橋。
$ sudo brctl addbr bridge0 $ sudo ip addr add 192.168.5.1/24 dev bridge0 $ sudo ip link set dev bridge0 up Confirm the new bridge’s settings. $ ip addr show bridge0 4: bridge0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state UP group default link/ether 66:38:d0:0d:76:18 brd ff:ff:ff:ff:ff:ff inet 192.168.5.1/24 scope global bridge0 valid_lft forever preferred_lft forever
2. 通過(guò)在daemon.json
位于Linux/etc/docker/
或 Windows Server C:\ProgramData\docker\config\
上的文件中設(shè)置選項(xiàng),將Docker 配置為使用新橋。在 Docker for Mac 或 Docker for Windows 上,單擊 Docker 圖標(biāo),選擇 Preferences,然后轉(zhuǎn)到 Daemon。
如果該daemon.json
文件不存在,請(qǐng)創(chuàng)建它。假設(shè)文件中沒(méi)有其他設(shè)置,它應(yīng)該具有以下內(nèi)容:
{ "bridge": "bridge0" }
重新啟動(dòng) Docker 以使更改生效。
3. 確認(rèn)新的傳出 NAT 偽裝已設(shè)置。
$ sudo iptables -t nat -L -n Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 192.168.5.0/24 0.0.0.0/0
4. 刪除現(xiàn)在未使用的docker0
橋。
$ sudo ip link set dev docker0 down $ sudo brctl delbr docker0 $ sudo iptables -t nat -F POSTROUTING
5. 創(chuàng)建一個(gè)新的容器,并驗(yàn)證它是否在新的 IP 地址范圍內(nèi)。
您可以使用此brctl show
命令查看 Docker 在啟動(dòng)和停止容器時(shí)添加和刪除接口的接口,并且可以運(yùn)行ip addr
和ip route
在容器內(nèi)部確認(rèn)其在橋接器的 IP 地址范圍中具有地址并在其上使用 Docker 主機(jī)的 IP 地址該橋作為其互聯(lián)網(wǎng)其余部分的默認(rèn)網(wǎng)關(guān)。