美文网首页
Docker 容器使用宿主机同网段IP

Docker 容器使用宿主机同网段IP

作者: blueline | 来源:发表于2018-10-15 15:35 被阅读0次

    依赖包

    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
    

    相关文章

      网友评论

          本文标题:Docker 容器使用宿主机同网段IP

          本文链接:https://www.haomeiwen.com/subject/dinxzftx.html