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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • docker之容器通信 这节属于了解学习,算是烂尾,最后我也没找到合适的方式去固定容器ip,然后作为正式环境去跑,...
    道无虚阅读 10,847评论 1 7
  • pipework的做法是通过网桥使容器,宿主机在同一个网段中进行通信 实验环境: 一、基础环境配置,三台服务器均执...
    向上的路阅读 8,153评论 1 2
  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 13,596评论 0 120
  • 天空,黑漆漆的,看不清前面的路,我迷失了方向,也失去了记忆,此时下着牛毛细雨,“藕断丝连”,我在雨中转呀转,在心中...
    发芽的种子娜阅读 3,443评论 16 9
  • 湘西行记(10)——苗家阿姐(原) 2015-08-21 11:45:18| 分类: 旅游记忆 湘西,全称湘西土家...
    秋叶细语阅读 4,949评论 0 0

友情链接更多精彩内容