Docker有好几种网络模式,这里介绍下bridge和macvlan两种模式
Bridge模式
Bridge模式是Docker默认的网络模式,当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,用来连接宿主机和容器,此主机上的Docker容器都会连接到这个虚拟网桥上,虚拟网桥的工作方式和物理交换机类似,这样所有容器就通过交换机连在了一个二层网络中。
看一下实际创建容器后的情况
上面两个图是宿主机上看到的,创建了一个docker0的网桥,ip是172.17.0.1/16,并且创建了一个路由,ip在172.17.0.0/16段的都会都会转到docker0网桥上。
上图是从容器内部看到的,容器有eth0这个网卡对外通信,ip是172.17.0.2/16,跟docker0在同一网段,路由里default via 172.17.0.1指定了容器的网关是docker0
并且容器的eth0还是eth0@if45,就是45网卡的一个接口
上面是宿主机的网卡信息,可以看到有一个编号45的"veth" 开头的网卡,这是一个 veth 设备,而 veth 设备总是成对出现的,另一半就是上面容器内的那个eth0,并且查看网桥信息也能看到这个veth的设备跟docker0网桥是绑定关系。
通过上面的基本上就明确网络的模式了,Docker利用 veth pair技术,在宿主机上创建了