
前言
今天開(kāi)始我們學(xué)習(xí)docker網(wǎng)絡(luò):
docker安裝時(shí)便會(huì)為我們創(chuàng)建三種網(wǎng)絡(luò)模式:host、none、bridge。
查看docker網(wǎng)絡(luò)
[root@cgls ~] # docker network ls
host網(wǎng)絡(luò)
容器創(chuàng)建時(shí)通過(guò) --network=host 指定使用宿主機(jī)網(wǎng)絡(luò),此時(shí)容器與宿主機(jī)共享網(wǎng)絡(luò)棧,容器內(nèi)的網(wǎng)絡(luò)配置和宿主機(jī)完全一樣。
none網(wǎng)絡(luò)
容器創(chuàng)建時(shí)通過(guò) --network=host 指定容器不創(chuàng)建任何網(wǎng)卡,此時(shí)容器里只有l(wèi)o。
bridge網(wǎng)絡(luò)
容器創(chuàng)建時(shí)不指定--network,那么容器默認(rèn)使用bridge網(wǎng)絡(luò)。bridge網(wǎng)絡(luò)是由docker創(chuàng)建的linux bridge -- docker0提供。
查看網(wǎng)橋
[root@cgls~]# brctl show
查看網(wǎng)橋網(wǎng)關(guān)
[root@cgls~]# ifconfig | grep docker0
由于docker0 網(wǎng)橋是安裝docker時(shí)就默認(rèn)創(chuàng)建的,我們無(wú)法在創(chuàng)建容器的時(shí)候指定容器ip,只能由docker0自動(dòng)分配ip。
如果想要?jiǎng)?chuàng)建容器的時(shí)候指定ip,需要自己再建一個(gè)bridge網(wǎng)絡(luò)。
三種網(wǎng)絡(luò)使用場(chǎng)景:
上面已經(jīng)介紹了三種docker自帶的網(wǎng)絡(luò),我們一同設(shè)想一下這三種網(wǎng)絡(luò)適用的場(chǎng)景。
host網(wǎng)絡(luò):
選用host網(wǎng)絡(luò)的容器,其網(wǎng)絡(luò)棧和宿主機(jī)一摸一樣,它的優(yōu)勢(shì)在于網(wǎng)絡(luò)性能強(qiáng)于其他網(wǎng)絡(luò)模式。如果對(duì)網(wǎng)絡(luò)傳輸有很大需求可以選用host網(wǎng)絡(luò)。
none網(wǎng)絡(luò):
none沒(méi)有網(wǎng)卡的網(wǎng)絡(luò),能做到更加封閉,可以更好的保護(hù)重要數(shù)據(jù),所以最適合對(duì)安全性要求高并且不需要聯(lián)網(wǎng)的容器。
bridge網(wǎng)絡(luò):
bridge網(wǎng)絡(luò)是通過(guò)容器上虛擬網(wǎng)絡(luò)設(shè)備和網(wǎng)橋上虛擬網(wǎng)絡(luò)設(shè)備組成一組veth(相當(dāng)于虛擬的網(wǎng)線)進(jìn)行連接的,然后通過(guò)docker0從172.17.0.0/16分配ip給容器使用。顯而易見(jiàn)bridge網(wǎng)絡(luò)適用于日常需要連接網(wǎng)絡(luò)的容器,例如http容器、web容器...