Docker:容器的四种网络类型 [十三]

Posted luoahong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker:容器的四种网络类型 [十三]相关的知识,希望对你有一定的参考价值。

一、None类型

简介:不为容器配置任何网络功能,--net=none

1、创建容器

docker run -it --network none busubox:latest

2、功能测试

[[email protected] ~]# docker run -it --network none busybox:latest
/ # ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  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:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

/ # free -m
              total        used        free      shared  buff/cache   available
Mem:           1984         730         125           0        1128        1135
Swap:          2047           0        2047
/ # ping www.baidu.com
ping: bad address ‘www.baidu.com‘
/ # ping ls
ping: bad address ‘ls‘

测试小结:

  1、网卡只有一块io

        2、只能执行本地命令,无法使用ping,ls

3、网络类型查看

[[email protected] ~]# docker inspect 148da827024a
[
    {
        "Id": "148da827024a7e250d58684fedbd7467b1ec1950aa2f87f8f4c64f0094af905c",
        "Created": "2019-01-18T07:34:16.468365453Z",
        "Path": "sh",
        "Args": [],
        "State": {
          ..........
           "MacAddress": "",
            "Networks": {
                "none": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "03062097926d6dfd6b1296295154c960f7e7989a106f7a1cb318c1040e4fa327",
                    "EndpointID": "cfb8a5eb16445bd8bb32708848a481c4638b86927e08fef4151e987e440869ec",
                    "Gateway": "",
                    "IPAddress": "",
                    "IPPrefixLen": 0,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "",
                    "DriverOpts": null
                }
            }
        }
    }
]

二、Container

简介:与另一个运行中的容器共享Network Namespace,--net=container:containerID

docker run -it --network container:name centos:6.9
netstat -lntup  #是因为另外一个容器使用了80端口  共享网络端口不能冲突
ps -ef
docker ps -a
docker inspect ID  #信息全是空

ping 172.168.0.2

yum install tcpdump -y
tcpdump -i eth0 icmp

共享网络端口不能冲突

三、Host

简介:与主机共享Network Namespace,--net=host

1、创建容器

[[email protected] ~]# docker run -it --network host centos:6.9

2、功能测试

1、容器命令测试

[[email protected] /]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      -                   
tcp        0      0 :::22                       :::*                        LISTEN      -                   
tcp        0      0 :::32769                    :::*                        LISTEN      -                   
tcp        0      0 :::32770                    :::*                        LISTEN      -                   
tcp        0      0 :::32771                    :::*                        LISTEN      -                   
udp        0      0 0.0.0.0:68                  0.0.0.0:*                               -                   
udp        0      0 0.0.0.0:3255                0.0.0.0:*                               -                   
udp        0      0 127.0.0.1:323               0.0.0.0:*                               -                   
udp        0      0 :::28221                    :::*                                    -                   
udp        0      0 ::1:323                     :::*                                    -                   
[[email protected] /]# hostname
luoahong
[[email protected] /]# ifconfig
br-ad2616372f01 Link encap:Ethernet  HWaddr 02:42:14:4D:EC:B9  
          inet addr:172.18.0.1  Bcast:172.18.255.255  Mask:255.255.0.0
          inet6 addr: fe80::42:14ff:fe4d:ecb9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3772 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4439 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2284090 (2.1 MiB)  TX bytes:4238472 (4.0 MiB)

docker0   Link encap:Ethernet  HWaddr 02:42:F7:2F:D6:20  
          inet addr:172.17.0.1  Bcast:172.17.255.255  Mask:255.255.0.0
          inet6 addr: fe80::42:f7ff:fe2f:d620/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:648 (648.0 b)

eth0      Link encap:Ethernet  HWaddr 00:0C:29:E7:B9:46  
          inet addr:192.168.231.136  Bcast:192.168.231.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fee7:b946/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:203307 errors:0 dropped:0 overruns:0 frame:0
          TX packets:88428 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:289713694 (276.2 MiB)  TX bytes:7698693 (7.3 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  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:1 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

vethac33a3b Link encap:Ethernet  HWaddr F2:9B:3D:42:9E:B4  
          inet6 addr: fe80::f09b:3dff:fe42:9eb4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1871 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2128 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1161525 (1.1 MiB)  TX bytes:1283465 (1.2 MiB)

vethc0fae95 Link encap:Ethernet  HWaddr EE:A2:D7:DD:0E:4C  
          inet6 addr: fe80::eca2:d7ff:fedd:e4c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:21 errors:0 dropped:0 overruns:0 frame:0
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:26497 (25.8 KiB)  TX bytes:3284 (3.2 KiB)

veth43c45fd Link encap:Ethernet  HWaddr FA:06:6C:F7:4E:94  
          inet6 addr: fe80::f806:6cff:fef7:4e94/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:1296 (1.2 KiB)

veth68aaa11 Link encap:Ethernet  HWaddr 3A:A1:00:65:05:AC  
          inet6 addr: fe80::38a1:ff:fe65:5ac/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:23 errors:0 dropped:0 overruns:0 frame:0
          TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:26610 (25.9 KiB)  TX bytes:3415 (3.3 KiB)

vethc477df7 Link encap:Ethernet  HWaddr AA:CF:39:D8:B3:0E  
          inet6 addr: fe80::a8cf:39ff:fed8:b30e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3772 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4439 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2284090 (2.1 MiB)  TX bytes:4238472 (4.0 MiB)

2、宿主机命令测试

[[email protected] ~]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1166/sshd           
tcp6       0      0 :::22                   :::*                    LISTEN      1166/sshd           
tcp6       0      0 :::32769                :::*                    LISTEN      2629/docker-proxy   
tcp6       0      0 :::32770                :::*                    LISTEN      2871/docker-proxy   
tcp6       0      0 :::32771                :::*                    LISTEN      2884/docker-proxy   
udp        0      0 0.0.0.0:68              0.0.0.0:*                           1110/dhclient       
udp        0      0 0.0.0.0:3255            0.0.0.0:*                           1110/dhclient       
udp        0      0 127.0.0.1:323           0.0.0.0:*                           648/chronyd         
udp6       0      0 :::28221                :::*                                1110/dhclient       
udp6       0      0 ::1:323                 :::*                                648/chronyd         
[[email protected] ~]#  hostname
luoahong
[[email protected] ~]# ifconfig
br-ad2616372f01: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.18.0.1  netmask 255.255.0.0  broadcast 172.18.255.255
        inet6 fe80::42:14ff:fe4d:ecb9  prefixlen 64  scopeid 0x20<link>
        ether 02:42:14:4d:ec:b9  txqueuelen 0  (Ethernet)
        RX packets 3772  bytes 2284090 (2.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4439  bytes 4238472 (4.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 fe80::42:f7ff:fe2f:d620  prefixlen 64  scopeid 0x20<link>
        ether 02:42:f7:2f:d6:20  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 648 (648.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.231.136  netmask 255.255.255.0  broadcast 192.168.231.255
        inet6 fe80::20c:29ff:fee7:b946  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:e7:b9:46  txqueuelen 1000  (Ethernet)
        RX packets 203331  bytes 289715676 (276.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 88441  bytes 7705439 (7.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth43c45fd: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::f806:6cff:fef7:4e94  prefixlen 64  scopeid 0x20<link>
        ether fa:06:6c:f7:4e:94  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 16  bytes 1296 (1.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth68aaa11: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::38a1:ff:fe65:5ac  prefixlen 64  scopeid 0x20<link>
        ether 3a:a1:00:65:05:ac  txqueuelen 0  (Ethernet)
        RX packets 23  bytes 26610 (25.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 37  bytes 3415 (3.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vethac33a3b: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::f09b:3dff:fe42:9eb4  prefixlen 64  scopeid 0x20<link>
        ether f2:9b:3d:42:9e:b4  txqueuelen 0  (Ethernet)
        RX packets 1871  bytes 1161525 (1.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2128  bytes 1283465 (1.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vethc0fae95: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::eca2:d7ff:fedd:e4c  prefixlen 64  scopeid 0x20<link>
        ether ee:a2:d7:dd:0e:4c  txqueuelen 0  (Ethernet)
        RX packets 21  bytes 26497 (25.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 34  bytes 3284 (3.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vethc477df7: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::a8cf:39ff:fed8:b30e  prefixlen 64  scopeid 0x20<link>
        ether aa:cf:39:d8:b3:0e  txqueuelen 0  (Ethernet)
        RX packets 3772  bytes 2284090 (2.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4439  bytes 4238472 (4.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

测试小结:

  1、主机名和宿主机是一样

        2、netstat -lntup的结果也是一样

        3、ifconfig也是一样,几乎和宿主机分辨不清楚

        4、但是容器看不到主机的程序

3、网络类型查看

   "MacAddress": "",
            "Networks": {
                "host": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "30b37ec09ff25e54c6b8208779335bfe7b01729fc830db0c2c70434ca6817eb2",
                    "EndpointID": "94f41095acd2ba3d85210cc3667fc6e4324d3cacb9c1243a0747b4e46774a811",
                    "Gateway": "",
                    "IPAddress": "",
                    "IPPrefixLen": 0,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "",
                    "DriverOpts": null
                }
            }
        }
    }
]

四、Bridge

简介:Docker设计的NAT网络模型

1、创建容器

docker run -d httpd:latest

 

2、功能测试

[[email protected] ~]# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:1a:8d:3d:28  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.228.135  netmask 255.255.255.0  broadcast 192.168.228.255
        inet6 fe80::20c:29ff:fe66:d93a  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:66:d9:3a  txqueuelen 1000  (Ethernet)
        RX packets 235  bytes 25094 (24.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 206  bytes 28905 (28.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

测试小结:docker0就是nat网络,不用过多解释

3、网络类型查看

"Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "d766f2526542a828e4b6e302fcc592a1a945bce83df236b9f24efbbea3eff4f4",
                    "EndpointID": "b2f80a78210a384f6ec5a8acc7f502d55f0858470f04e279a091aadc1912e82d",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02",
                    "DriverOpts": null
                }
            }
        }
    }
]

以上是关于Docker:容器的四种网络类型 [十三]的主要内容,如果未能解决你的问题,请参考以下文章

Docker的四种网络模式和相关网络命令等操作

Docker的四种网络模式和相关网络命令等操作

Docker的四种网络模式

浅谈docker的四种网络模式与数据管理

浅谈docker的四种网络模式与数据管理

浅谈docker的四种网络模式与数据管理