1底燎、四種常用的網(wǎng)絡(luò)模式
Bridge 默認使用 需要使用端口映射
Host 和宿主機使用相同的端口 host模式直接使用宿主機網(wǎng)絡(luò) 一般情況下不使用
Container
None
2、Bridge
docker是用namespace來隔離網(wǎng)絡(luò)的。
容器之間的網(wǎng)絡(luò):
容器之間的網(wǎng)絡(luò)是通過網(wǎng)卡來實現(xiàn)的讼呢。網(wǎng)卡的特點是成對出現(xiàn)。
容器和宿主機之間的網(wǎng)絡(luò):
1拘泞、容器Docker1:發(fā)送請求給A舷胜。
2、A轉(zhuǎn)發(fā)請求給A1里覆。
3丧荐、A1在網(wǎng)橋上發(fā)起廣播,所有的網(wǎng)卡都會收到廣播喧枷,誰的IP是192.168.0.1虹统,Docker1收到廣播后,建立網(wǎng)絡(luò)連接隧甚,其它容器收到廣播后车荔,直接丟棄。
1戚扳、ipv4 forward:轉(zhuǎn)發(fā)功能忧便。
2、開始ipv4 forward,Docker2:B收到請求后帽借,發(fā)現(xiàn)IP地址不是自己的珠增,不會丟棄超歌,而是通過eth0進行轉(zhuǎn)發(fā)。此時蒂教,宿主機本身成了一個路由器巍举。
3、通過Iptables創(chuàng)建一條規(guī)則凝垛,凡是發(fā)送請求到本機8080端口的IP懊悯,全部篡改成目標容器的IP和端口,請求會轉(zhuǎn)發(fā)到docker0網(wǎng)橋上的其它網(wǎng)卡苔严,比如B1定枷。
4、此時B1發(fā)起尋址廣播届氢,同上面的廣播一樣欠窒。