如下,指定网段为192.168.0.0/24,网关为192.168.0.1,网络类型为bridge,网络名称为mynet
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
创建后再次查看当前docker网络
[root@iZbp1flzt6x7pxmxfhmxeeZ ~]# docker network list NETWORK ID NAME DRIVER SCOPE 9741ca08001e bridge bridge local 405291d91242 host host local 5fea02b3963d mynet bridge local c07d37e1f457 none null local [root@iZbp1flzt6x7pxmxfhmxeeZ ~]#(2)创建名为centos1的docker容器,并指定网络为mynet
docker run -it --name centos1 --net mynet centos
如下为创建后并进入,查看ip
[root@iZbp1flzt6x7pxmxfhmxeeZ ~]# docker run -it --name centos1 --net mynet centos [root@e98a944fec1e /]# ip addr 1: lo:(3)创建名为centos2的docker容器,使用网络mynetmtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 217: eth0@if218: mtu 1500 qdisc noqueue state UP group default link/ether 02:42:c0:a8:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 192.168.0.2/16 brd 192.168.255.255 scope global eth0 valid_lft forever preferred_lft forever [root@e98a944fec1e /]#
docker run -it --name centos2 --net mynet centos
如下,创建容器后进入并查看网络
[root@iZbp1flzt6x7pxmxfhmxeeZ ~]# docker run -it --name centos2 --net mynet centos [root@e4b7913e1581 /]# ip addr 1: lo:(4)创建192.169.0.0网段的自定义网络mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 219: eth0@if220: mtu 1500 qdisc noqueue state UP group default link/ether 02:42:c0:a8:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 192.168.0.3/16 brd 192.168.255.255 scope global eth0 valid_lft forever preferred_lft forever [root@e4b7913e1581 /]#
如下,指定网段为192.169.0.0/24,网关为192.169.0.1,网络类型为bridge,网络名称为mynet2
docker network create --driver bridge --subnet 192.169.0.0/16 --gateway 192.169.0.1 mynet2
创建后再次查看当前docker网络
[root@iZbp1flzt6x7pxmxfhmxeeZ ~]# docker network list NETWORK ID NAME DRIVER SCOPE 9741ca08001e bridge bridge local 405291d91242 host host local 5fea02b3963d mynet bridge local 00cb484201d3 mynet2 bridge local c07d37e1f457 none null local [root@iZbp1flzt6x7pxmxfhmxeeZ ~]#(5)创建名为centos3的docker容器,并指定网络为mynet2
docker run -it --name centos3 --net mynet2 centos
如下为创建后并进入,查看ip
[root@iZbp1flzt6x7pxmxfhmxeeZ ~]# docker run -it --name centos3 --net mynet2 centos [root@41f0ebf82add /]# ip addr 1: lo:(6)创建名为centos4的docker容器,使用网络mynet2mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 226: eth0@if227: mtu 1500 qdisc noqueue state UP group default link/ether 02:42:c0:a9:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 192.169.0.2/16 brd 192.169.255.255 scope global eth0 valid_lft forever preferred_lft forever [root@41f0ebf82add /]#
docker run -it --name centos4 --net mynet2 centos
如下,创建容器后进入并查看网络
[root@iZbp1flzt6x7pxmxfhmxeeZ ~]# docker run -it --name centos4 --net mynet2 centos [root@6d94db61d337 /]# ip addr 1: lo:(7)验证网络联通性mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 228: eth0@if229: mtu 1500 qdisc noqueue state UP group default link/ether 02:42:c0:a9:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 192.169.0.3/16 brd 192.169.255.255 scope global eth0 valid_lft forever preferred_lft forever [root@6d94db61d337 /]#
- 此时创建好的centos1和centos2在192.168.0.0网络里,centos3和centos4在192.169.0.0的网络里
- 可以验证centos1中可以ping通centos2,但是无法和centos3容器ping通
[root@e98a944fec1e /]# ping centos2 -c 3 PING centos2 (192.168.0.3) 56(84) bytes of data. 64 bytes from centos2.mynet (192.168.0.3): icmp_seq=1 ttl=64 time=0.043 ms 64 bytes from centos2.mynet (192.168.0.3): icmp_seq=2 ttl=64 time=0.077 ms 64 bytes from centos2.mynet (192.168.0.3): icmp_seq=3 ttl=64 time=0.065 ms --- centos2 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2001ms rtt min/avg/max/mdev = 0.043/0.061/0.077/0.016 ms [root@e98a944fec1e /]# ping centos3 -c 3 ping: centos3: Name or service not known [root@e98a944fec1e /]#
- 此时做到了centos1centos2 和centos3 centos3的隔离
如下,设置将容器centos1与mynet2联通,此时centos1将可以与mynet2下所有的docker容器联通
docker network connect mynet2 centos1
如下,可以验证,centos1已经可以与mynet2网络下的centos3和centos4联通
[root@e98a944fec1e /]# ping centos3 -c 3 PING centos3 (192.169.0.2) 56(84) bytes of data. 64 bytes from centos3.mynet2 (192.169.0.2): icmp_seq=1 ttl=64 time=0.063 ms 64 bytes from centos3.mynet2 (192.169.0.2): icmp_seq=2 ttl=64 time=0.064 ms 64 bytes from centos3.mynet2 (192.169.0.2): icmp_seq=3 ttl=64 time=0.066 ms --- centos3 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2001ms rtt min/avg/max/mdev = 0.063/0.064/0.066/0.006 ms [root@e98a944fec1e /]# [root@e98a944fec1e /]# ping centos4 -c 3 PING centos4 (192.169.0.3) 56(84) bytes of data. 64 bytes from centos4.mynet2 (192.169.0.3): icmp_seq=1 ttl=64 time=0.080 ms 64 bytes from centos4.mynet2 (192.169.0.3): icmp_seq=2 ttl=64 time=0.062 ms 64 bytes from centos4.mynet2 (192.169.0.3): icmp_seq=3 ttl=64 time=0.066 ms --- centos4 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2001ms rtt min/avg/max/mdev = 0.062/0.069/0.080/0.010 ms [root@e98a944fec1e /]#
如下可以验证,此时centos2仍然与mynet2下的centos3和centos4不通
[root@e4b7913e1581 /]# ping centos3 -c 3 ping: centos3: Name or service not known [root@e4b7913e1581 /]# ping centos4 -c 3 ping: centos4: Name or service not known [root@e4b7913e1581 /]#



