共計 862 個字符,預計需要花費 3 分鐘才能閱讀完成。
這篇文章將為大家詳細講解有關如何理解 bridge 網絡,文章內容質量較高,因此丸趣 TV 小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
默認的 bridge 網絡
Docker 安裝時會創建一個 命名為 docker0 的 linux bridge。如果不指定 –network,創建的容器默認都會掛到 docker0 上。
當前 docker0 上沒有任何其他網絡設備,我們創建一個容器看看有什么變化。
一個新的網絡接口 veth38c57df 被掛到了 docker0 上,veth38c57df 就是新創建容器的虛擬網卡。
下面看一下容器的網絡配置。
容器有一個網卡 eth0@if34。大家可能會問了,為什么不是 veth38c57df 呢?
實際上 eth0@if34 和 veth38c57df 是一對 veth pair。veth pair 是一種成對出現的特殊網絡設備,可以把它們想象成由一根虛擬網線連接起來的一對網卡,網卡的一頭(eth0@if34)在容器中,另一頭(veth38c57df)掛在網橋 docker0 上,其效果就是將 eth0@if34 也掛在了 docker0 上。
我們還看到 eth0@if34 已經配置了 IP 172.17.0.2,為什么是這個網段呢?讓我們通過 docker network inspect bridge 看一下 bridge 網絡的配置信息:
原來 bridge 網絡配置的 subnet 就是 172.17.0.0/16,并且網關是 172.17.0.1。這個網關在哪兒呢?大概你已經猜出來了,就是 docker0。
容器創建時,docker 會自動從 172.17.0.0/16 中分配一個 IP,這里 16 位的掩碼保證有足夠多的 IP 可以供容器使用。
除了 none, host, bridge 這三個自動創建的網絡,用戶也可以根據業務需要創建 user-defined 網絡。
關于如何理解 bridge 網絡就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。