選單
GSS 技術部落格
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw
2 分鐘閱讀時間 (478 個字)

每日小知識 #18 - Docker 網路篇(2) - Bridge

shutterstock_198004562
  • 在網路的世界,Bridge 指的是處理不同網段間,鏈結層的通訊的裝置。它可以以硬體實作,也能以軟體模擬,以軟體的型式呈現時,是搭配 OS 的 Kernel 在運作的。
  • 在 Docker 的世界,Bridge 正是以軟體的型式實作,讓不同的 container 因連結到同一個 Bridge,而能達到彼此通訊的功能,同時又能隔離那些沒有連到同一個 Bridge 的 container。
  • 當 Docker 啟動的時候,預設就會建立一個名叫 default 的 Bridge Network Driver,所有未明確設定的 container 在 docker run 的時候都會連到此 Bridge(這也是為什麼前幾篇有提過預設所有的 container 都是能互相通訊的)。
  • 除此之外,你也可以透過 docker network create 建立一個自定義的 Bridge Network
  • 那麼,default 與自定義的 Bridge Network 有什麼差異呢?
    • 自定義的 Bridge 提供自動解析 DNS 的功能,這也是為什麼服務間可以用 container name 當作 host。當然,在一些比較舊的文章或是書上,default bridge 也是可以透過 –link 達到同樣的效果。
    • 自定義的 Bridge 相對安全,因為限制了能夠通訊的 container 的範圍。
    • 自定義的 Bridge 可以任意義透過 docker network connect 與 docker network disconnect 隨時加入或移除 container 到同一個 Bridge 底下;反之,default bridge 要先停止 container,再以不同的網路設定重新建一個 container。
    • 自定義的 bridge 在設定上是相對便利的,比方說要設不同的 MTU、Gateway、iptables …等,但如果是 default 的 bridge 每更改一次設定就必須要重開整個 docker daemon,而且這些更動是發生在 Docker 之外的(也就是說你需要更熟悉網路的相關操作)
  • Docker 在自定義的 Bridge 有哪些相關操作呢?
    • docker network create => 建立
    • docker network rm => 刪除
    • 以及其他…可以再參照 docker network help 的內容依需求設定額外的參數
    • docker run 建立 container 時可以透過 –net 指定要用哪一個自定義的 Bridge
    • 如果想連到別的自定義 Bridge 也可以 docker network disconnect 再 docker network connect。

(To be continued …)

每日小知識 #19 - Docker 網路篇(3) - iptables
每日小知識 #17 - Docker 網路篇(1)

相關文章

 

評論

尚無評論
已經注冊了? 這裡登入
Guest
2024/06/03, 週一

Captcha 圖像