docker容器网络bridge
-
每一次Docker进程启动时,都会在主机上创建一个虚拟网桥,并命名为docker0,在此主机上启动的Docker容器会连接到这个名为docker0的虚拟网桥上。虚拟网桥的工作方式和物理交换机十分类似,在这样的主机上的所有容器就可以通过交换机连在了一个二层网络中。
并且会从docker0子网中分配一个IP地址给容器使用,同时会设置docker0的IP地址为容器的默认网关。在主机上创建一对虚拟网卡veth pair设备时,Docker会将veth pair设备的一端放在新创建的容器中,并命名为eth0,另一端放在主机中,以veth什么什么类似这样的名字命名,并且会将这个网络设备加入到docker0网桥中。且可以通过brctl show命令查看。
bridge模式是docker的默认网络模式,不写--net参数时,就是bridge模式。在使用docker run -p时,docker实际是在iptables做了DNAT规则,并且实现端口转发功能。同时可以使用iptables -t nat -vnL来查看。
桥接模式是docker 的默认网络设置,当Docker服务启动时,会在主机上创建一个名为docker0的虚拟网桥,并选择一个和宿主机不同的IP地址和子网分配给docker0网桥。
host 模式:该模式下容器是不会拥有自己的ip地址,而是使用宿主机的ip地址和端口。这种模式的好处就是网络性能比桥接模式的好。缺点就是会占用宿主机的端口,网络的隔离性不太好。
none模式:加上后面的参数就行了 --net=none;none模式没有IP地址,无法连接外网,等于就是断网的状态,作用就是用于测试,生产环境一般不会用到这种
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏