1.配置網(wǎng)橋
Docker服務(wù)默認(rèn)會(huì)創(chuàng)建一個(gè)名稱(chēng)為docker0的Linux網(wǎng)橋(其上有一個(gè)docker0內(nèi)部接口)圃郊,它在內(nèi)核層連通了其他的物理或虛擬網(wǎng)卡,這就將所有容器和本地主機(jī)都放到同一個(gè)物理網(wǎng)絡(luò)掀抹。用戶(hù)使用Docker創(chuàng)建多個(gè)自定義網(wǎng)絡(luò)時(shí)可能會(huì)出現(xiàn)多個(gè)容器網(wǎng)橋。
Docker默認(rèn)指定了docker0接口的IP地址和子網(wǎng)掩碼伊诵,讓主機(jī)和容器之間可以通過(guò)網(wǎng)橋相互通信媚朦,它還給出了MTU(接口允許接收的最大傳輸單元),通常是1500 B日戈,或宿主主機(jī)網(wǎng)絡(luò)路由上支持的默認(rèn)值。這些值都可以在服務(wù)啟動(dòng)的時(shí)候進(jìn)行配置:
- --bip=CIDR:IP地址加掩碼格式孙乖,例如192.168.1.5/24浙炼;
- --mtu=BYTES:覆蓋默認(rèn)的Docker mtu配置。也可以在配置文件中配置DOCKER_OPTS唯袄,然后重啟服務(wù)弯屈。由于目前Docker網(wǎng)橋是Linux網(wǎng)橋,用戶(hù)可以使用brctl show來(lái)查看網(wǎng)橋和端口連接信息:
每次創(chuàng)建一個(gè)新容器的時(shí)候恋拷,Docker從可用的地址段中選擇一個(gè)空閑的IP地址分配給容器的eth0端口资厉,并且使用本地主機(jī)上docker0接口的IP作為容器的默認(rèn)網(wǎng)關(guān):
2.自定義網(wǎng)橋
除了默認(rèn)的docker0網(wǎng)橋,用戶(hù)也可以指定其他網(wǎng)橋來(lái)連接各個(gè)容器蔬顾。在啟動(dòng)Docker服務(wù)的時(shí)候宴偿,可使用-b BRIDGE或--bridge=BRIDGE來(lái)指定使用的網(wǎng)橋。如果服務(wù)已經(jīng)運(yùn)行诀豁,就需要先停止服務(wù)窄刘,并刪除舊的網(wǎng)橋: