zoukankan      html  css  js  c++  java
  • docker-配置网桥-自定义网络

                          容器网络访问原理
     桥接宿主机网络 临时生效: # 网桥名称 br_name=br0 # 添加网桥 brctl addbr $br_name # 给网桥设置IP ip addr add 192.168.1.120/24 dev $br_name # 删除已存在的eth0网卡配置 ip addr del 192.168.1.120/24 dev eth0 # 激活网桥 ip link set $br_name up # 添加eth0到网桥 brctl addif $br_name eth0 还需要在Docker启动时桥接这个网桥: vi /etc/default/docker DOCKER_OPTS="-b=br0" service docker restart 第四章 网络管理 永久生效: # vi /etc/network/interfaces auto eth0 iface eth0 inet static auto br0 iface br0 inet static address 192.168.1.120 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 192.168.1.1 bridge_ports eth0 注意:以上配置是基于宿主机系统Ubuntu16.04,配置与CentOS7不同 讲

                             Docker配置固定IP(跟物理机同网段)

      这是一个脚本:改下相关配置就能用

    C_ID=$(docker run -itd --net=none ubuntu)
    C_PID=$(docker inspect -f '{{.State.Pid}}' $C_ID)
    # 创建network namespace目录并将容器的network namespace软连接到此目录,以便ip netns命令读取
    mkdir -p /var/run/netns
    ln -s /proc/$C_PID/ns/net /var/run/netns/$C_PID
    # 添加虚拟网卡veth+容器PID,类型是veth pair,名称是vp+容器PID
    ip link add veth$C_PID type veth peer name vp$C_PID
    # 添加虚拟网卡到br0网桥
    brctl addif br0 veth$C_PID
    # 激活虚拟网卡
    ip link set veth$C_PID up
    # 设置容器网络信息
    IP='192.168.1.123/24'
    GW='192.168.1.1'
    # 给进程配置一个network namespace
    ip link set vp$C_PID netns $C_PID
    # 在容器进程里面设置网卡信息
    ip netns exec $C_PID ip link set dev vp$C_PID name eth0
    ip netns exec $C_PID ip link set eth0 up
    ip netns exec $C_PID ip addr add $IP dev eth0
    ip netns exec $C_PID ip route add default via 192.168.1.1
    

     使用工具:

     pipework
    如果你觉得使用上面命令比较复杂,也有别人封装好的脚本:
    git clone https://github.com/jpetazzo/pipework.git
    cp pipework/pipework /usr/local/bin/
    docker run -itd --net=none --name test01 ubuntu
    pipework br0 test01 192.168.1.88/24@192.168.1.1
    

     Centos上面永久桥接配置:

    在/etc/sysconfig/network-scripts/下
    
    添加一个网桥的配置文件就可以了.
    
    举例说明
    
    假设你原来eth0的信息如下
    cat /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE="eth0"
    HWADDR="78:2B:CB:3C:A4:BA"
    NM_CONTROLLD="yes"
    ONBOOT="yes"
    IPADDR=192.168.48.111
    NETMASK=255.255.255.0
    GATEWAY=192.168.48.1
    
    注释掉 BOOTPROTO
    
    加入一行
    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    BRIDGE="br0"
    
    新建一个网桥配置文件
    
    vim /etc/sysconfig/network-scripts/ifcfg-br0
    DEVICE=br0
    TYPE=Bridge
    ONBOOT=ye
    BOOTPROTO=static
    PREFIX=24
    IPADDR=192.168.48.111
    NETMASK=255.255.255.0
    GATEWAY=192.168.48.1
    STP=on
    DELAY=0
    
    最后重启网络服务就可以了
    
    /etc/init.d/network restart
    
  • 相关阅读:
    安装IDM扩展
    Go_数组&切片
    Mycat概念&安装
    IDEA自定义主题
    完全卸载Oracle11g
    创建型模式——单例模式(Singleton)
    设计模式统计
    PHP解压带密码的zip文件
    Win推荐软件
    如何设置线程池的线程数?
  • 原文地址:https://www.cnblogs.com/fuyuteng/p/9383966.html
Copyright © 2011-2022 走看看