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容器...