美文网首页
容器网桥

容器网桥

作者: 欧耶90 | 来源:发表于2020-08-24 07:40 被阅读0次
    1. 默认网桥
      Docker服务启动时默认创建了docker0网桥,并指定了docker0接口的ip和子网掩码,让主机和容器之间可以通过网桥通信,还默认设置了MTU(接口运行接收的最大传输单元),默认为1500B,可以在配置文件中配置DOCKER_OPTS,然后重启服务,因为Docker网桥是Linux网桥,用户可以使用brctl show来查看网桥和端口的连接信息:
    # 安装brctl
    apt install bridge-utils -y
    # 查看网桥信息
    ➜  ~ brctl show
    bridge name bridge id       STP enabled interfaces
    docker0     8000.0242184dc7a8   no      vethaf68b69
    

    每次创建新容器时,Docker从可用的地址空间中选择一个ip给容器的eth0接口,并使用宿主机docker0接口的ip地址作为默认网关:

    ➜  ~ docker run -it --rm ubuntu:china bash
    root@a9950c30b178:/# ip addr show eth0
    23: eth0@if24: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
        link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
           valid_lft forever preferred_lft forever
    root@a9950c30b178:/# ip route
    default via 172.17.0.1 dev eth0 
    172.17.0.0/16 dev eth0 proto kernel scope link src 172.17.0.3 
    
    1. 自定义网桥
      除了使用默认docker0网桥,用户还可以自定义网桥让各个容器来连接使用,可以使用-b 或--bridge指定网桥
      停止Docker服务,删除旧网桥
    [root@test01 ~]# service docker stop
    Redirecting to /bin/systemctl stop docker.service
    # 停止docker0网桥运行
    [root@test01 ~]# ip link set dev docker0 down
    # 删除docker0网桥
    [root@test01 ~]# brctl delbr docker0
    

    创建一个网桥bridge0:

    brctl addbr bridge0
    ip addr add 172.17.0.1/24 dev bridge0
    ip link set dev bridge0 up
    

    查看网桥并启动:

    ip addr show bridge0
    

    配置Docker服务使用自定义网桥:

    echo 'DOCKER_OPTS="-b=bridge0"' >> /etc/default/docker
    sudo service docker start
    
    1. 使用OpenvSwitch网桥
      环境:Ubuntu.18
      安装OpenvSwitch
    ➜  ~ apt install openvswitch-switch -y
    

    添加一个网桥br0并查看:

    ➜  ~ ovs-vsctl add-br br0
    ➜  ~ ovs-vsctl show
    f4b805d4-f4c8-49d8-a3a6-484b46e7f37e
        Bridge br0
            Port br0
                Interface br0
                    type: internal
        ovs_version: "2.13.0"
    

    配置容器连接到OpenvSwitch网桥
    - 创建无网口容器
    bash docker run --net=none --privileged=true -it ubuntu:china bash

    相关文章

      网友评论

          本文标题:容器网桥

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