最近整理过一套Vmware中虚拟机的一个网络模型,下面我就来整理一下Docker的一个网络模型。Docker的网络模型:
- bridge:桥模式
 - host:主机模式
 - none:无网络
 - 
宿主机上的网卡

 ens33:主要是外网网卡
- lo:本地环回地址网卡
 - virbr0:虚拟网络,是按照 libvirt 服务后生成。暂时不管
 - broker0:是安装Docker后生成的,没创建一个Docker桥模式网络就会有一个DockerN网卡生成,网卡作为虚拟网桥
桥模式bridge

本机拥有2块网卡
- ens33连接外部局域网
 - docker0:对应Docker的桥模式网络中的一个,这块网卡有网桥(交换机的功能)
 - docker0上的接口叫做 
veth - docker容器中的接口叫做:
eth0 
 
再创建一个桥模式网络
docker network create my-bridge

个人感觉:broker0更像是一个三层的交换机,是一种NAT模式。类似于虚拟机中的NAT
Host模式

- 容器直接使用宿主机的网卡,ip也是宿主机的
 - 端口映射无意义
 
none模式
Container模式

- 2个容器共享其中一个容器中的网络(网卡)
 - 2个容器内应用端口是共享的
docker run -it --network container:alpine1 --name alpine2 alpine /bin/sh
 
自定义网络
自定义网络它是桥接模式,她和bridge这个默认存在的桥接模式的网络不同点在于:
- 自定义网络通过容器名和ip都可以ping通
 - 默认bridge只能通过ip
 
参考文章
- 尚硅谷-周阳-Docker视频
 

