docker 網路(host&none&bridge)

今天開始我們學習docker網路:

docker安裝時便會為我們創建三種網路模式:host、none、bridge。

[root@cgls ~] # docker network ls

host網路

容器創建時通過 --network=host 指定使用宿主機網路,此時容器與宿主機共享網路棧,容器內的網路配置和宿主機完全一樣。

none網路

容器創建時通過 --network=host 指定容器不創建任何網卡,此時容器里只有lo。

bridge網路

容器創建時不指定--network,那麼容器默認使用bridge網路。bridge網路是由docker創建的linux bridge -- docker0提供。[root@cgls~]# brctl show

Advertisements

查看網橋

[root@cgls~]# ifconfig | grep docker0

查看網橋網關

由於docker0 網橋是安裝docker時就默認創建的,我們無法在創建容器的時候指定容器ip,只能由docker0自動分配ip。

如果想要創建容器的時候指定ip,需要自己再建一個bridge網路。

三種網路使用場景:

上面已經介紹了三種docker自帶的網路,我們一同設想一下這三種網路適用的場景。

host網路:

選用host網路的容器,其網路棧和宿主機一摸一樣,它的優勢在於網路性能強於其他網路模式。如果對網路傳輸有很大需求可以選用host網路。

none網路:

none沒有網卡的網路,能做到更加封閉,可以更好的保護重要數據,所以最適合對安全性要求高並且不需要聯網的容器。

Advertisements

bridge網路:

bridge網路是通過容器上虛擬網路設備和網橋上虛擬網路設備組成一組veth(相當於虛擬的網線)進行連接的,然後通過docker0從172.17.0.0/16分配ip給容器使用。顯而易見bridge網路適用於日常需要連接網路的容器,例如http容器、web容器...

Advertisements

你可能會喜歡