美文网首页
Docker 如何自定义默认网桥 docker0

Docker 如何自定义默认网桥 docker0

作者: 鱿鱼鉄板燒 | 来源:发表于2018-08-01 18:06 被阅读0次

    背景

    默认情况下启动docker之后会自己创建一个名为 docker0的网桥。但是里面的ip配置可能不是自己期望或是与某些公司内部的网关冲突了,造成不必要的麻烦。

    而我遇到的问题刚好就是异地办公司的网关跟默认docker0网关刚好一至,造成移动同事无法访问该服务器地址。

    如何解决?

    修改默认的配置文件 /etc/docker/daemon.json对Docker进行配置。

    如果服务已经开始需要先停止服务,并删除旧的网络。

    $ sudo service docker stop
    $ sudo ip link set dev docker0 down
    $ sudo brctl delbr docker0
    

    修改 /etc/docker/daemon.json以下代码是我的范例

    {
      "bip": "192.188.0.1/16",
      "registry-mirrors": [
        "https://a73cc22x.mirror.aliyuncs.com",
        "https://hub-mirror.c.163.com",
        "http://c0d14726.m.daocloud.io",
        "https://registry.aliyuncs.com"
      ]
    }
    

    重启Doker服务:

    $ sudo service docker start
    

    查看配置是否成功

    $ ifconfig docker0
    docker0   Link encap:Ethernet  HWaddr 02:42:38:60:08:25
              inet addr:192.188.0.1  Bcast:0.0.0.0  Mask:255.255.0.0
              UP BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    

    另外一种操作

    类似的也需要删除旧的docker0如果已经启动docker服务先关闭了再删除。

    手动创建一个新的网桥名称为 bridge0

    $ sudo brctl addbr bridge0
    $ sudo ip addr add 192.188.0.1/16 dev bridge0
    $ sudo ip link set dev bridge0 up
    

    查看确认网桥创建并启动。

    $ ip addr show bridge0
    4: bridge0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state UP group default
        link/ether 66:38:d0:0d:76:18 brd ff:ff:ff:ff:ff:ff
        inet 192.188.0.1/16 scope global bridge0
           valid_lft forever preferred_lft forever
    

    在 Docker 配置文件/etc/docker/daemon.json 中添加如下内容,即可将 Docker 默认桥接到 创建的网桥上。

     { 
         "bridge": "bridge0", 
     }
    

    再次启动docker服务

    $ sudo service docker start
    

    Trick

    如何查看电脑的路由信息,确定自己到底哪个网关冲突了?

    执行以下命令:

    $ route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         192.16.3.1      0.0.0.0         UG    0      0        0 enp0s31f6
    192.16.3.0      0.0.0.0         255.255.255.0   U     0      0        0 enp0s31f6
    192.38.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-8658c245b375
    192.128.0.0     0.0.0.0         255.255.0.0     U     0      0        0 br-18e510164f90
    192.133.0.0     0.0.0.0         255.255.0.0     U     0      0        0 br-d6fb5b3db5a7
    192.188.0.0     0.0.0.0         255.255.0.0     U     0      0        0 docker0
    

    总结

    通过以上的操作应该能帮你解决需要的问题。

    相关文章

      网友评论

          本文标题:Docker 如何自定义默认网桥 docker0

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