Docker网络出现的原因
Docker容器在运行时,会涉及到多个容器相连接,或者与宿主机上应用连接的问题,所以Docker才会有网络的概念。
虚拟中心节点网卡
在Docker安装时,Docker会自动创建三个虚拟中心节点网卡,同时在宿主机上创建一个名为docker0的虚拟中心网卡。
docker0
docker0:
[mpsp@localhost ~]$ ifconfigdocker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0inet6 fe80::42:60ff:fed9:1b6e prefixlen 64 scopeid 0x20<link>ether 02:42:60:d9:1b:6e txqueuelen 0 (Ethernet)RX packets 8 bytes 536 (536.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 8 bytes 648 (648.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen 1 (Local Loopback)RX packets 2877 bytes 189486 (185.0 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 2877 bytes 189486 (185.0 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0p4p1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 10.0.0.249 netmask 255.255.255.0 broadcast 10.0.0.255inet6 fe80::9922:a9d5:f9ae:eec9 prefixlen 64 scopeid 0x20<link>ether d4:be:d9:c6:8a:02 txqueuelen 1000 (Ethernet)RX packets 6752226 bytes 1955322839 (1.8 GiB)RX errors 0 dropped 10 overruns 0 frame 0TX packets 5974788 bytes 1069340386 (1019.8 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
默认创建的三个虚拟中心网卡
三个虚拟的中心节点网卡:
NETWORK ID NAME DRIVER SCOPEb87d805892b7 bridge bridge local5c3d1d8a8a10 host host local43d8f499771c none null local
- bridge网卡(默认):如果创建容器时选择此网卡,Docker会为容器分配IP,并通过宿主机的docker0网卡与外部通信。
- host网卡:如果创建容器时选择此网卡,Docker不会为容器分配IP,而是直接使用宿主机的IP和端口。
- none网卡:如果创建容器时选择此网卡,Docker会关闭容器的网络功能。
