Docker 網路設定了容器如何與其他容器和外部服務通訊。為了獲得網路訪問,容器需要是 Docker 網路的一部分。容器可以通訊的方式取決於它的網路連線。
Docker 提供了五種標準網路模式來執行核心網路功能:
- Bridge(橋接)
- Host(主機)
- Overlay(重疊)
- IPvLAN
- Macvlan
1、橋接網路
橋接網路在主機機器和容器之間形成一個虛擬橋接。該網路上的容器可以相互通訊,但與未連線到該網路的容器隔離。
特點:
每個容器都會獲得一個獨一無二的 IP 地址。透過與主機的橋接連線,這些容器還可以相互互動,與本地網路(LAN)和 Internet 互聯。然而,它們不會以物理裝置的形式出現在 LAN 上。
2、主機網路(Host Network)
使用主機網路模式的容器使用與主機機器相同的網路設定,而不會被隔離。
它們沒有單獨的 IP 地址。相反,它們使用的任何埠都直接連結到主機網路。
例如,如果容器程序使用埠 8080,則可以透過 192.168.1.101:8080(即主機的 IP 地址和埠號)訪問它。
由於應用程式容器使用埠 8080,因此不需要埠對映,因為在這種情況下,容器使用主機埠。我們的資料庫使用埠 5432,因此可以透過主機的 IP 地址和 5432 埠進行訪問。
3、重疊網路(Overlay Network)
重疊網路是跨越多個 Docker 主機的網路。它們可以讓這些主機上的容器相互通訊,而無需作業系統管理路由。
重疊網路用於 Docker Swarm 叢集。但是,如果有兩個單獨執行的 Docker 引擎,並且需要直接連線它們的容器,也可以這樣使用它們。
上圖進行了簡化。在真實場景中,正如容器一樣,主機也會從重疊網路獲取虛擬 IP 地址,而且它們的範圍是相同的。