vi /etc/docker/daemon.json { "bip":"172.18.0.1/16" }
systemctl restart docker
ip addr
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:49:57:44 brd ff:ff:ff:ff:ff:ff inet 192.168.31.31/24 brd 192.168.31.255 scope global noprefixroute ens33 valid_lft forever preferred_lft forever inet6 fe80::a05d:dcec:e694:2cfc/64 scope link tentative noprefixroute dadfailed valid_lft forever preferred_lft forever inet6 fe80::4298:eebd:9094:f36e/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:92:1b:3b:17 brd ff:ff:ff:ff:ff:ff inet 172.18.0.1/16 brd 172.18.255.255 scope global docker0 valid_lft forever preferred_lft forever
1.4 增加网关路由
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
# centos7-a [root@centos7-a ~]# route add -net 172.18.0.0/16 gw 192.168.31.31 [root@centos7-a ~]# ip route default via 192.168.31.1 dev ens33 proto static metric 100 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 172.18.0.0/16 via 192.168.31.31 dev ens33 192.168.31.0/24 dev ens33 proto kernel scope link src 192.168.31.30 metric 100
# centos7-b [root@centos7-a ~]# route add -net 172.17.0.0/16 gw 192.168.31.30 [root@centos7-a ~]# ip route default via 192.168.31.1 dev ens33 proto static metric 100 172.18.0.0/16 dev docker0 proto kernel scope link src 172.18.0.1 172.17.0.0/16 via 192.168.31.30 dev ens33 192.168.31.0/24 dev ens33 proto kernel scope link src 192.168.31.30 metric 100
1.5 测试网络是否联通
1 2 3 4 5 6 7 8 9 10 11
[root@centos7-a ~]# ping 172.18.0.1 PING 172.18.0.1 (172.18.0.1) 56(84) bytes of data. 64 bytes from 172.18.0.1: icmp_seq=1 ttl=64 time=1.61 ms 64 bytes from 172.18.0.1: icmp_seq=2 ttl=64 time=0.979 ms 64 bytes from 172.18.0.1: icmp_seq=3 ttl=64 time=0.614 ms
[root@centos7-b ~]# ping 172.17.0.1 PING 172.17.0.1 (172.17.0.1) 56(84) bytes of data. 64 bytes from 172.17.0.1: icmp_seq=1 ttl=64 time=2.13 ms 64 bytes from 172.17.0.1: icmp_seq=2 ttl=64 time=0.521 ms 64 bytes from 172.17.0.1: icmp_seq=3 ttl=64 time=0.659 ms
3. Overlay网络
4. Namespace
Veth pair:用于不同network namespace间进行通信,点对点通信。
Linux Bridge: 实现类似交换机的工作模式,将多个不同Namespace上的网卡连通
使用网桥工具
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
yum install bridge-utils -y
[root@centos7-a ~]# brctl show bridge name bridge id STP enabled interfaces docker0 8000.0242a5d2db31 no veth463224b veth95cd878 [root@centos7-a ~]# ip addr 29: veth95cd878@if28: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default link/ether 56:19:de:43:e7:e4 brd ff:ff:ff:ff:ff:ff link-netnsid 1 inet6 fe80::5419:deff:fe43:e7e4/64 scope link valid_lft forever preferred_lft forever 55: veth463224b@if54: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default link/ether fa:89:aa:75:57:a1 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet6 fe80::f889:aaff:fe75:57a1/64 scope link valid_lft forever preferred_lft forever