最近整理过一套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视频