Docker 容器使用宿主机同网段IP
·
依赖包
net-tools iproute2 bridge-utils git curl
权限
需要在 root 下执行
脚本
dnet.sh
j脚本内容
#like br0 要创建的桥接设备名
BRNAME=$1
#like eth0 要矫健的网络接口名
IFNAME=$2
#192.168.1.2/24 当前主机IP
LOCALIP=$3
#192.168.1.1 当前主机网关
GWIP=$4
# 注意如果此脚本出错会导致主机离线,无法进行网络访问,请做好应急预案
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 dnet.sh br0 eth0 192.168.1.2/24 192.168.1.1
创建一个测试用容器
docker run -itd --name testweb1 nginx
为创建好的容器分配主机同网段IP
pipework br0 testweb1 192.168.1.3/24@192.168.1.1
验证是否成功
在任意同网段主机内执行都可成功访问
ping 192.168.1.3
curl http://192.168.1.3
更多推荐
已为社区贡献10条内容
所有评论(0)