CodeGym /Adesua ahorow /Docker SELF /Docker的主要網路驅動程式

Docker的主要網路驅動程式

Docker SELF
等級 17 , 課堂 0
開放

1.1 網路驅動程式 Bridge

Docker 的網路驅動程式可以讓容器彼此互動,也可以連接到外部網路。Docker 提供了幾個網路驅動程式,每個都有自己的特點,並適用於特定的使用場景。在這堂課裡,我們會探討四個主要的網路驅動程式:bridgehostnoneoverlay

網路驅動程式 bridge 是 Docker 的預設網路驅動程式。它建立了一個私有的內部網路,容器可以在這個網路裡通信。這個網路與主機的外部網路是隔離的。

特點:

  • 連接到 bridge 網路的容器可以透過 IP 地址互相通信。
  • 外部網路無法直接與 bridge 網路中的容器通信,除非設定了埠轉發。
  • 在本地開發和測試場景中使用非常簡單。

使用範例:

如果在建立容器時沒有指定網路,容器會自動連接到 bridge 網路。

Terminal

docker run -d --name my_container nginx 

要設定埠轉發,可以使用 -p 標誌。

Terminal

docker run -d -p 8080:80 --name my_container nginx 

1.2 網絡驅動程式 Host

網絡驅動程式 host 讓容器可以直接使用主機機器的網絡堆疊。這意味著,容器將擁有與主機相同的 IP 地址,並且能夠使用主機的所有網絡介面。

特點:

  • 使用網絡驅動程式 host 的容器,由於減少了網絡虛擬化的開銷,性能更快。
  • 容器可以訪問與主機相同的網絡介面,可能會增加安全風險。
  • 適用於需要高網絡性能或特定網絡配置的場景。

使用示例:

Terminal

docker run -d --network host --name my_container nginx 

1.3 網路驅動 None

網路驅動 none 會關閉容器的所有網路功能。連接到 none 網路的容器沒有網路介面,這使得它完全與其他容器和網路隔離開來。

特點:

  • 容器完全與所有網路隔離。
  • 對於不需要網路的容器非常有用,比如執行與網路無關的任務。

使用範例:

Terminal

docker run -d --network none --name my_container busybox 

1.4 網路驅動程式 Overlay

網路驅動程式 overlay 用於建立分佈式網絡,覆蓋多個 Docker 主機。這個驅動程式經常應用於 Docker Swarm 或 Kubernetes,以確保不同主機上的容器之間的網路互通。

特點:

  • 提供不同主機上的容器之間的連接。
  • 需要設置集群,例如 Docker Swarm。
  • 允許在現有網絡之上創建虛擬網絡,提供高水準的隔離和安全性。

使用範例:

要使用 overlay 驅動程式,首先需要創建 Docker Swarm 集群。

1. 初始化 Docker Swarm:

Terminal

docker swarm init

2. 創建 overlay 網絡:

Terminal

docker network create -d overlay my_overlay_network 

3. 啟動連接至 overlay 網絡的容器:

Terminal

docker service create --name my_service --network my_overlay_network nginx 

1.5 比較網路驅動程式

比較不同的網路驅動程式

網路驅動程式 隔離性 效能 適用性 特點
bridge 中等 本地網路 預設的隔離網路
host 效能 與主機共用網路堆疊
none 完全 最高 隔離 完全隔離網路
overlay 分散式網路 在不同主機的容器間通信

網路驅動程式的應用

  • Bridge: 當容器需要相互通信但應與外部網路隔離時,使用於本地應用程式和測試。
  • Host: 適用於需要高網路效能或特殊網路配置的應用程式,且網路隔離性不是重點時使用。
  • None: 使用於完全隔離的容器,無需網路交互時。
  • Overlay: 使用於分散式應用程式執行於叢集內時,需要在不同主機的容器間進行通信時使用。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION