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
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)