依賴(lài)包
net-tools iproute2 bridge-utils git curl
權(quán)限
需要在 root 下執(zhí)行
腳本
dnet.sh
j腳本內(nèi)容
#like br0 要?jiǎng)?chuàng)建的橋接設(shè)備名
BRNAME=$1
#like eth0 要矯健的網(wǎng)絡(luò)接口名
IFNAME=$2
#192.168.1.2/24 當(dāng)前主機(jī)IP
LOCALIP=$3
#192.168.1.1 當(dāng)前主機(jī)網(wǎng)關(guān)
GWIP=$4
# 注意如果此腳本出錯(cuò)會(huì)導(dǎo)致主機(jī)離線,無(wú)法進(jìn)行網(wǎng)絡(luò)訪問(wèn),請(qǐng)做好應(yīng)急預(yù)案
yum install -y net-tools iproute2 bridge-utils git
git clone https://github.com/jpetazzo/pipework
cp pipework/pipework /usr/local/bin/
(ip link add dev "$BRNAME" type bridge > /dev/null 2>&1) || (brctl addbr "$BRNAME")
ip link set "$BRNAME" up
ip addr add $LOCALIP dev $BRNAME; \
ip addr del $LOCALIP dev $IFNAME; \
brctl addif $BRNAME $IFNAME; \
ip route del default; \
ip route add default via $GWIP dev $BRNAME
- 實(shí)例
sh dnet.sh br0 eth0 192.168.1.2/24 192.168.1.1
創(chuàng)建一個(gè)測(cè)試用容器
docker run -itd --name testweb1 nginx
為創(chuàng)建好的容器分配主機(jī)同網(wǎng)段IP
pipework br0 testweb1 192.168.1.3/24@192.168.1.1
驗(yàn)證是否成功
在任意同網(wǎng)段主機(jī)內(nèi)執(zhí)行都可成功訪問(wèn)
ping 192.168.1.3
curl http://192.168.1.3